Files
cozystack/docs/security/incident-response.md
T
Timur Tukaev e1fc2ab82e docs(security): fix the supported set at three lines and record that no backport rule exists
Maintainer decisions on the two questions this branch raised rather than
answered.

Supported versions are the latest stable minor and the two minors preceding it.
Expressed as a rolling rule, so it names concrete lines when read against the
Releases page without going stale, and it replaces the activity-window test,
which classified every 1.x line back to 1.0 as supported and so described
something wider than the project does.

There is no documented rule for choosing which supported lines a fix is
backported to; it is a per-fix maintainer decision weighing severity against
backport risk. Say that plainly in SECURITY.md instead of implying a policy.

That also resolves the promise in the incident-response process, which said a
fix ships across all affected supported release lines. It does not necessarily,
and with no rule governing the choice that sentence committed the project to
something it has not agreed. Point at the per-fix decision instead.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Timur Tukaev <timur.tukaev@aenix.io>
2026-08-10 21:55:37 +05:00

68 lines
3.5 KiB
Markdown

# Incident Response
This document is the public summary of how the Cozystack maintainers respond to
a confirmed security vulnerability or incident. Detailed operational procedures
(contact trees, credential inventories, and step-by-step checklists) are
maintained privately by the maintainers; this page describes the process and
the mechanisms it relies on so that reporters and users know what to expect.
It complements, and does not replace:
- [`SECURITY.md`](../../SECURITY.md) — how to report a vulnerability, response
commitments, and the disclosure timeline.
- [`CONTRIBUTOR_LADDER.md`](../../CONTRIBUTOR_LADDER.md) — the offboarding
procedure, including access revocation and credential rotation.
## Roles
For each incident the maintainers designate:
- **Incident lead** — a maintainer (typically a core maintainer) who coordinates
triage, the fix, the release, and disclosure, and keeps the reporter informed.
- **Comms owner** — responsible for the public advisory and release-notes
wording, and for any coordination with upstream projects and CNCF.
- **Fix owner(s)** — the maintainer(s) developing and reviewing the fix.
One person may hold more than one role on a small incident.
## Lifecycle
1. **Intake.** A report arrives through GitHub Private Vulnerability Reporting or
a private maintainer contact (see `SECURITY.md`). Receipt is acknowledged
within **3 business days**.
2. **Triage and severity.** The maintainers reproduce the issue and assign a
CVSS v3.1 severity within **7 business days**. This drives the remediation
target and disclosure window (see `SECURITY.md` → *Disclosure timeline*).
3. **Containment.** Where an immediate mitigation or workaround exists (a
configuration change, a policy, or disabling an affected feature), it is
documented and shared with the reporter and, if warranted, with affected
adopters under embargo.
4. **Private fix development.** The fix is developed under a **GitHub Security
Advisory** (private fork) so that code and discussion stay confidential until
release.
5. **Coordinated release.** The fix is shipped through the normal patch-release
and backport process. Which supported lines receive the backport is decided
per fix, weighing severity against backport risk — see the *Supported
Versions* table in `SECURITY.md`, which also records that no documented rule
governs that choice.
6. **Disclosure.** A GHSA — and, when applicable, a CVE — is published. Public
disclosure follows the outbound channels: GitHub Releases and release notes,
the changelog, and the GHSA itself. The reporter is credited unless anonymity
is requested. Disclosure happens no later than the coordinated-disclosure
window committed in `SECURITY.md`.
7. **Access and credential hygiene.** If the incident involved a compromised or
departing maintainer or leaked credential, the access-revocation and
credential-rotation steps in `CONTRIBUTOR_LADDER.md` are executed (GitHub team
access, org roles, Actions secrets, registry tokens, and App keys), completed
within five business days.
8. **Retrospective.** After resolution the maintainers record what happened, the
root cause, and any follow-up hardening, and open tracking issues for
preventative work.
## Severity and timelines
Severity classification (CVSS v3.1) and the target remediation and disclosure
timelines are defined once, authoritatively, in
[`SECURITY.md`](../../SECURITY.md) → *Disclosure timeline*. They are not
duplicated here to avoid drift.