Vulnerability Reporting Process (Internal SOP)
An internal standard operating procedure (SOP) document that maps the full vulnerability lifecycle from receipt through triage, remediation, advisory publication, and ENISA notification. Designed for use inside a PSIRT or product security team, this template provides step-by-step procedures aligned with CRA Articles 13, 14, and Annex I Part II.
Purpose & Scope
Article 13Document Title: Vulnerability Reporting Process — Standard Operating Procedure Document Owner: [HEAD OF PRODUCT SECURITY / CISO] Version: [1.0] Effective Date: [DATE] Review Cycle: Annual, or upon material change to CRA implementing acts
Purpose
This SOP defines the standard process by which [COMPANY NAME]'s product security team receives, triages, remediates, and publishes information about security vulnerabilities affecting [COMPANY NAME] products. It operationalises the commitments made in [COMPANY NAME]'s public CVD Policy ([PUBLIC POLICY URL]).
Scope
This SOP applies to:
- All inbound vulnerability reports received via [PORTAL URL], [SECURITY EMAIL], or escalated from customer support or sales
- Vulnerabilities discovered internally by [COMPANY NAME] security teams or in third-party security assessments
- Vulnerabilities in upstream open-source or commercial components that affect [COMPANY NAME] products
- Any security incident that may constitute an Article 14 reportable event
Out of Scope: Vulnerabilities in infrastructure operated by third-party cloud providers where [COMPANY NAME] has no remediation authority.
Establishing document ownership, version, and review cycle ensures this SOP is a living document — not a one-time artefact. Linking to the public CVD policy creates a coherent internal/external document pair that auditors will expect.
Intake & Triage
Article 13Step 1 — Receipt and Logging (Owner: [SECURITY OPERATIONS / PSIRT TIER 1])
Upon receipt of a vulnerability report:
- Log the report in [TRACKING SYSTEM, e.g. Jira / Linear / CVD Portal] within 2 hours of receipt during business hours, or by 09:00 on the next business day for off-hours reports
- Assign a tracking ID using the format [VULN-YYYY-NNNN]
- Send acknowledgment to reporter within 48 hours of receipt (use acknowledgment template [LINK])
- Tag the report with initial classification: [RESEARCHER / CUSTOMER / INTERNAL / AUTOMATED SCAN / BUG BOUNTY]
Step 2 — Eligibility Check (Owner: [PSIRT TIER 1])
Within 1 business day of logging, assess:
- Is the reported product within scope of the public CVD policy?
- Is the reported version still supported?
- Does the report describe a security vulnerability (vs. a bug or feature request)?
If out of scope or not a security issue: close with explanation, use closure template [LINK]. If in scope: proceed to Step 3.
Step 3 — Technical Triage (Owner: [PSIRT TIER 2 / PRODUCT SECURITY ENGINEER])
Within 5 business days of acknowledgment:
- Attempt to reproduce the reported behaviour in a test environment
- Confirm the vulnerability exists and identify the affected component(s)
- Assign preliminary CVSS 4.0 base score (see Section 3)
- Identify whether the vulnerability is already publicly known (search NVD, vendor advisories, GitHub security advisories)
- Route to the responsible product engineering team via [ROUTING PROCESS]
Precise ownership at each step prevents the 48-hour acknowledgment commitment from being missed. The two-tier model (Tier 1 for intake/eligibility, Tier 2 for technical triage) is common in mature PSIRTs and prevents technical staff being blocked by administrative tasks.
Severity Classification (CVSS)
Annex I Part IIScoring Standard: [COMPANY NAME] uses CVSS 4.0 as its primary severity scoring system. CVSS 3.1 scores may be provided for backward compatibility.
Scoring Responsibility: The assigned PSIRT Tier 2 engineer performs initial scoring. For Critical (9.0+) vulnerabilities, a second engineer must independently review and agree the score before it is finalised.
Severity Bands and SLA:
| CVSS Score | Rating | Patch SLA | Escalation | |------------|--------|-----------|------------| | 9.0–10.0 | Critical | [15] calendar days | CISO + VP Engineering same day | | 7.0–8.9 | High | [30] calendar days | Head of Product Security | | 4.0–6.9 | Medium | [60] calendar days | Assigned engineer | | 0.1–3.9 | Low | [90] calendar days | Backlog |
Scoring Adjustments:
The PSIRT may adjust the effective priority (not the CVSS base score) upward based on:
- Active exploitation confirmed in the wild → treat as Critical regardless of CVSS
- Vulnerability affects a safety-critical function → treat as Critical regardless of CVSS
- Vulnerability is in a product with very large installed base → increase urgency by one band
- Proof of concept publicly available → increase urgency by one band
EPSS: Where available, consult the Exploit Prediction Scoring System (EPSS) score alongside CVSS to assess exploitation likelihood.
Separating the CVSS base score (objective) from priority adjustments (contextual) is best practice — it preserves the integrity of your scoring record while allowing the team to respond to real-world risk. Documenting the EPSS consideration shows awareness of modern vulnerability prioritisation beyond CVSS alone.
Remediation Planning
Article 13, Annex I Part IIStep 4 — Remediation Assignment (Owner: [HEAD OF PRODUCT SECURITY])
For confirmed vulnerabilities, create a remediation ticket in [ENGINEERING TRACKING SYSTEM] and assign to the responsible product engineering team. The ticket must include:
- PSIRT tracking ID and link
- CVSS score and severity band
- Patch SLA deadline
- Reporter coordination status (embargo, public policy, etc.)
- Draft CVE details (see Section 6)
Step 5 — Fix Development (Owner: [PRODUCT ENGINEERING TEAM])
- Develop a fix that addresses root cause, not just the reported symptom
- Conduct security code review of the fix prior to merge
- Write regression test to prevent re-introduction
- For Critical/High: conduct fuzzing or targeted penetration test on the fixed component before release
- Communicate fix-ready status to PSIRT at least [5] business days before planned release to allow advisory preparation
Step 6 — Release Coordination (Owner: [PSIRT + PRODUCT ENGINEERING])
- Coordinate release date with reporter (offer advance notification of patch under embargo)
- Prepare customer-facing advisory (see Section 6)
- Confirm update delivery mechanism (OTA, download portal, package repository)
- For Critical vulnerabilities: notify major enterprise customers of upcoming patch under embargo [X] days prior to release
Requiring engineering teams to treat PSIRT-assigned tickets with defined SLAs is often the hardest organisational change. Document the escalation path explicitly — engineers need to understand that PSIRT tickets carry regulatory implications, not just reputational ones.
Article 14 Notification Decision Tree
Article 14When to Apply Article 14 Assessment
At the point of triage (Step 3), and again upon any material change in understanding of the vulnerability, the PSIRT must assess whether Article 14 mandatory notification applies.
Article 14 Triggers (assess ALL of the following):
[ ] Is the vulnerability actively being exploited in the wild? (confirmed or credibly reported) [ ] Does the vulnerability constitute a 'severe security incident' as defined in Article 14? — Severe security incident indicators: significant service disruption, unauthorised access to sensitive data, potential for significant financial harm, or impact on critical infrastructure
If ANY trigger is checked YES:
- Escalate immediately to [HEAD OF PRODUCT SECURITY] and [CISO]
- Complete Early Warning notification to ENISA (or national CSIRT) within 24 hours of awareness — Use the Article 14 Early Warning template [LINK] — Submit via ENISA Single Reporting Platform (SRP): [ENISA SRP URL]
- Complete Full Notification to ENISA within 72 hours of awareness — Use the Article 14 Full Notification template [LINK]
- Submit Final Report to ENISA within 14 days (or extended period agreed with ENISA) — Include root cause analysis and permanent mitigation measures
If NO triggers apply: Continue standard CVD process. Document the Article 14 assessment in the tracking ticket with timestamp (required for CRA audit).
Uncertainty: If you are unsure whether Article 14 applies, treat it as applying and escalate. It is easier to withdraw a precautionary early warning than to explain a missed notification.
A decision tree format is more resistant to misapplication than prose — it forces the assessor to work through each condition. The instruction to default to notifying when uncertain is the correct risk posture given the regulatory consequences of a missed Article 14 notification.
Advisory Drafting
Annex I, Article 13Step 7 — Advisory Preparation (Owner: [PSIRT])
For all Medium severity and above vulnerabilities, prepare a security advisory prior to patch release.
Advisory Contents:
| Field | Requirement | |-------|-------------| | CVE ID | Required (request from [CNA / MITRE] at triage stage) | | CVSS score | Required (4.0 base score; 3.1 optional) | | CWE category | Required | | Affected products | Required (product name, model, firmware/software version range) | | Fixed version | Required | | Vulnerability description | Required (do not include reproduction steps or PoC) | | Workaround | Required if patch is not yet available | | Reporter credit | Required if reporter consented | | CSAF advisory | Strongly recommended |
CSAF Publication:
Publish the advisory in CSAF 2.0 format at [CSAF FEED URL]. Update the CSAF provider-metadata.json file to include the new advisory. Notify [CSAF AGGREGATORS / BSIFEED] upon publication if applicable.
Advisory Review:
All advisories must be reviewed by:
- [PSIRT LEAD] for technical accuracy
- [LEGAL / COMMUNICATIONS] for language and liability review
- For Critical advisories: [CISO] sign-off required
Publication Timing: Advisories are published simultaneously with or after the patch release. They must never be published before the patch is available to all customers.
Requiring CVE and CWE at this stage — even for Medium severity — builds a complete vulnerability record that supports long-term audit trails and feeds downstream security tooling. The prohibition on pre-patch advisory publication protects customers from being targeted by threat actors using your advisory as an attack roadmap.
Closure & Post-Mortem
Annex I Part IIStep 8 — Closure (Owner: [PSIRT])
Close a vulnerability ticket only when ALL of the following are complete:
[ ] Patch released to all affected customers [ ] Advisory published [ ] CVE published in NVD (or submission confirmed) [ ] Reporter notified of closure and invited to verify fix [ ] Any Article 14 notifications completed (if applicable) [ ] Ticket updated with all final details and closure date
Reporter Final Communication:
Send reporter a closure communication including: advisory URL, CVE ID, and credit text (if applicable). Invite the reporter to confirm the fix resolves the issue within [14] days.
Post-Mortem (Critical and High vulnerabilities):
For Critical and High severity vulnerabilities, conduct a post-mortem within [30] days of closure:
- What was the root cause of the vulnerability?
- How long was the vulnerability present in the codebase (vulnerability age)?
- Why was it not caught by existing security controls (SAST, code review, penetration testing)?
- What control improvements are needed?
- Were SLAs met? If not, why?
Document post-mortem findings in [POST-MORTEM SYSTEM] and assign any resulting action items to the appropriate team with owners and deadlines.
Requiring reporter confirmation that the fix works catches incomplete patches before they become a second vulnerability report. Post-mortems for Critical/High vulnerabilities are essential for programme improvement and are the kind of continuous improvement evidence auditors look for.
Record Keeping for CRA Audit
Article 13, Article 14Retention Policy
[COMPANY NAME] retains all vulnerability-related records for a minimum of [5] years from the date of closure, or for the supported lifetime of the affected product, whichever is longer.
Records to Retain:
- Original reporter communication (including timestamps)
- All internal and external communications during the vulnerability lifecycle
- Triage notes and severity assessments (including CVSS scoring rationale)
- Article 14 assessment decisions and supporting evidence
- Article 14 notifications submitted to ENISA (copies)
- Remediation tickets and commit references
- Advisory publication records and CSAF files
- Post-mortem reports
Audit-Ready Evidence Package:
For each closed vulnerability of Medium severity or higher, maintain an evidence package containing:
- Timeline from report receipt to closure
- CVSS score and rationale
- Article 14 assessment outcome and basis
- Advisory publication URL and date
- CVE ID
Data Handling: Vulnerability records containing personally identifiable information about reporters must be handled in accordance with [COMPANY NAME]'s Privacy Policy ([LINK]) and applicable GDPR obligations. Reporter identity should be separated from technical vulnerability records where possible.
Access Control: Vulnerability records are classified [CONFIDENTIAL / RESTRICTED] and accessible only to [PSIRT TEAM MEMBERS, CISO, LEGAL]. Access logs are retained.
CRA audit readiness requires documentary evidence that your process was followed — not just that a process exists. The evidence package concept gives your team a repeatable artefact to produce during an audit without scrambling through multiple systems. GDPR compliance for reporter data is often overlooked — address it explicitly.
Use this template automatically in CVD Portal
CVD Portal generates your CVD policy, tracks acknowledgments, and creates an audit trail — free, forever.
Set up your free portal