← VulnBrief

Full sample, no email gate

A real sample CRA reporting pack

Generated on 2026-10-28 for Northwind Ledger, a fictional B2B SaaS manufacturer. The intake answers were written for this sample; the documents come from the same pipeline a paid order runs. It is not legal advice, not certification, and not a conformity assessment.

CRA Article 14 Reporting Runbook: Northwind Ledger Cloud

Based on answers provided by Northwind Ledger on 2026-10-28. Self-attested by the manufacturer; not audited, certified, a conformity assessment, or legal advice.

Notice: This runbook is not legal advice and not a conformity assessment. It organises Northwind Ledger's own intake answers into an operational sequence. Whether and how CRA Article 14 applies to a specific event should be confirmed with counsel.

1. Scope

This runbook covers Northwind Ledger Cloud, a B2B SaaS / web application made by Northwind Ledger. The product is available in the EU to customers in Germany and the Netherlands, and EU users are not blocked.

It covers two kinds of event:

  • Actively exploited vulnerabilities in Northwind Ledger Cloud.
  • Severe incidents affecting the security of Northwind Ledger Cloud.

Affected versions and releases are identified using Git tags, Vercel deployment IDs, and customer-visible release notes.

The security contact is security@northwind.example.

2. When to Open This Runbook

Open this runbook when any of the following sources raises a possible actively exploited vulnerability or severe security incident:

  • The security mailbox (security@northwind.example)
  • GitHub private advisories
  • Snyk
  • npm audit
  • GitHub Dependabot
  • Manufacturer advisories
  • Customer support escalations

The product security lead makes the first triage decision. The engineering manager approves severity.

Severity and exploitation likelihood are assessed using four inputs:

  • CVSS score
  • Known exploitation signals
  • Customer impact
  • Whether the affected component is internet-facing

Track all triage work in the Jira Security project. Apply the existing labels for customer-impacting issues.

If exploitation signals are present, or the event may be a severe incident, treat the reporting clock as potentially running. Proceed to Section 3 without waiting for full certainty.

3. First 24 Hours: Early Warning

The fixed timing for this stage is that an early warning is due within 24 hours.

Current practice:

  1. The product security lead triages the event and records it in the Jira Security project.
  2. The engineering manager approves the severity rating.
  3. Record affected versions using Git tags and Vercel deployment IDs.
  4. Note whether the affected component is internet-facing and what customer impact is known.
  5. Check whether the affected component appears in the CycloneDX SBOM generated in GitHub Actions for the web app.
  6. Use the Notion incident-response page for general incident coordination.

Open gaps at this stage:

  • No owner is documented for the 24-hour early-warning decision.
  • The Notion incident-response page has not yet been rehearsed for CRA Article 14 reporting.
  • Worker images are not covered by the SBOM, so component lookups for worker images cannot rely on it.

Until an owner is assigned, escalate the early-warning decision promptly. Record who made the decision, and when, in the Jira ticket. See the Gap Register (GR-1).

4. By 72 Hours: Full Notification

The fixed timing for this stage is that a full notification is due within 72 hours.

Current practice:

  1. The product security lead drafts the 72-hour full notification.
  2. Legal reviews the draft before submission, where time allows.
  3. External counsel reviews regulatory language when available.
  4. The founder approves urgent operational updates.
  5. Update the Jira ticket with:
    • Current severity
    • Affected versions
    • Exploitation status
    • Fix status
  6. When a fix is in progress, it follows the standard release process:
    • Pull request review
    • Preview deploy
    • Production deploy
    • Release notes
    • Customer notification when needed

If legal or external counsel review cannot happen within the window, record that fact and the reason in the Jira ticket.

5. Final Report Timing

The fixed timing for this stage depends on the event type:

Event typeFinal report due
Actively exploited vulnerabilityNo later than 14 days after a corrective measure is available
Severe incidentWithin one month

Use these anchors to fix the deadline:

  • For a vulnerability, the production deploy recorded against a Vercel deployment ID, together with the corresponding release notes, shows when the corrective measure became available.
  • For a severe incident, record the date of the 72-hour notification in Jira so the one-month window can be tracked.

Open gaps at this stage:

  • No owner is assigned for the final report.
  • No final-report template exists.

See the Gap Register (GR-2 and GR-3).

6. Roles and Backups

RoleResponsibilityCurrent status
Product security leadFirst triage; drafts 72-hour notificationIn place
Engineering managerApproves severityIn place
LegalReviews full notification before submission where time allowsIn place
External counselReviews regulatory language when availableIn place
FounderApproves urgent operational updatesIn place
24-hour early-warning ownerEarly-warning decisionNot yet assigned (GR-1)
Final report ownerFinal reportNot yet assigned (GR-2)

Backups: The intake did not name backups for any role. Backup coverage is not yet defined and is recorded as GR-6.

7. Evidence to Collect

Store evidence in the locations Northwind Ledger already uses:

LocationWhat to keep
Jira Security projectTriage record, severity approval, timestamps of decisions and submissions, review notes
GitHub Actions artifactsCycloneDX SBOM for the web app; build records for the fix
Snyk reportsScanner findings for the affected component
Release changelogRelease notes for the corrective release; Git tag and Vercel deployment ID
Customer notification mailboxCopies of any customer notifications sent

Also keep the originating alert from its source, for example the GitHub private advisory, the Dependabot alert, npm audit output, the manufacturer advisory, or the support escalation. Link it from the Jira ticket.

8. Gap Register

These items are not yet in place. They must not be presented as current practice.

IDGapCurrent stateOwner
GR-124-hour CRA early-warning ownerNo documented ownerNot yet assigned
GR-2Final report ownerNot definedNot yet assigned
GR-3Final-report templateDoes not existNot yet assigned
GR-4Public support-period statementNo support or security-update period communicated to customersNot yet assigned
GR-5Reporting drillNo CRA Article 14 reporting drill has been rehearsed; the Notion incident-response page has not been exercised for this purposeNot yet assigned
GR-6Role backupsNo backups defined for any reporting roleNot yet assigned
GR-7SBOM coverage for worker imagesCycloneDX SBOM covers the web app only; worker images are not yet coveredNot yet assigned

Planned work: Northwind Ledger has not set target dates for closing these gaps. Dates are not yet defined.

This runbook is not legal advice and not a conformity assessment. It reflects self-attested answers from Northwind Ledger and has not been independently verified.

Ready to build yours?

Flat $3,999, one time. The output is grounded only in facts you attest before checkout.

Build my reporting pack →