Coordinated vulnerability disclosure under the CRA: policy, intake and security.txt
The Cyber Resilience Act makes coordinated vulnerability disclosure a legal requirement: manufacturers must put in place and enforce a policy for receiving and handling vulnerability reports from third parties, provide a contact address, and publicly disclose fixed vulnerabilities. ISO/IEC 29147 and 30111 describe how; RFC 9116 security.txt publishes the contact.
By the Vellaci teamPublished Updated 4 min readOperational guidance, not legal advice
Key facts
- Legal basis
- Annex I Part II(4)–(6); Art. 13(6) for upstream components
- Standards
- ISO/IEC 29147 (disclosure), ISO/IEC 30111 (handling), RFC 9116 (security.txt)
- Must include
- Intake channel, scope, safe harbour, acknowledgement and handling timelines, disclosure approach, credit
- Connects to
- Article 14 — a report may be the awareness moment for an exploited vulnerability
What the CRA requires
Annex I Part II(5) requires manufacturers to put in place and enforce a policy on coordinated vulnerability disclosure; Part II(6) requires them to take measures to facilitate the sharing of information about potential vulnerabilities, including by providing a contact address; Part II(4) requires public disclosure of information about fixed vulnerabilities once a security update is available, including a description, affected products, impacts, severity and remediation guidance. Article 13(6) adds the upstream direction: when a manufacturer identifies a vulnerability in a component, including open source, it reports it to the component's maintainer and, where it fixes it, shares the fix. Recital and guidance also recognise the role of CSIRTs as intermediaries where a reporter and manufacturer cannot coordinate directly.
What a defensible policy contains
- Scope: which products, versions and services are covered; what is out of scope (third-party services, social engineering, denial of service).
- How to report: an e-mail address and/or web form, PGP key, what to include, preferred languages.
- Safe harbour: a commitment not to pursue good-faith research that respects the scope, and what 'good faith' means.
- Timelines: acknowledgement (two business days is common), triage (five business days), fix targets by severity, and a default public-disclosure window (90 days is the industry norm) with the conditions for extension.
- Coordination: how you communicate progress, whether you support CVE assignment, how you coordinate with downstream manufacturers and CSIRTs.
- Credit: how researchers are acknowledged, and an opt-out.
- Ownership: who inside the company owns the process, and how reports become tickets, findings and — where exploitation is evidenced — Article 14 cases.
Publishing the contact: security.txt
RFC 9116 defines a machine-readable file at /.well-known/security.txt with at least Contact and Expires fields, and optionally Policy, Preferred-Languages, Acknowledgments, Canonical and Encryption. It is the first thing researchers and scanners look for. Generate one with the free tool on this site, publish it on every domain that hosts a product or its documentation, keep the expiry under a year and sign it if you can.
Running intake
A policy is only as good as the mailbox behind it. Route reports to a shared queue with an on-call owner, acknowledge within the promised time, record the report as a finding linked to the affected products and versions, and evaluate two questions immediately: severity, and whether the report contains evidence of exploitation in the wild. The second question matters because a researcher's report can be the awareness moment for Article 14 — record the time you received it and the time you confirmed the evidence.
Disclosure of fixed vulnerabilities
Once a security update is available, publish an advisory: identifier (CVE where assigned), affected products and versions, severity (CVSS), impact, fixed versions, workarounds, and credit. Where publication would harm security more than it helps — for example while exploitation is ongoing and the update is still rolling out — the CRA allows delaying publication; document the reasoning. Machine-readable formats (CSAF, CycloneDX VEX) let customers consume advisories automatically.
A policy outline you can adopt today
| Section | What to write |
|---|---|
| 1. Purpose and scope | Which products, versions, domains and services; what is excluded |
| 2. How to report | E-mail and form, PGP key, what to include (product, version, steps, impact), languages |
| 3. Our commitments | Acknowledge in 2 business days; triage in 5; keep you informed at least every 30 days; fix targets by severity |
| 4. Your commitments (safe harbour) | Good-faith research, no data exfiltration beyond proof, no denial of service, no social engineering, reasonable time to fix |
| 5. Disclosure | Default 90-day coordinated window; earlier if fixed; extensions by agreement; how CVEs are assigned |
| 6. Recognition | Hall of fame and, where offered, rewards; opt-out |
| 7. Third-party components | How we handle reports about components we integrate, and how we pass them upstream |
| 8. Contact and version | security.txt link, policy version and date |
Aligning with ISO/IEC 29147 and 30111
29147 covers the external interface — receiving, coordinating and disclosing; 30111 covers the internal handling — triage, investigation, remediation and release. Together they map cleanly onto Annex I Part II and are the most likely basis for harmonised standards on vulnerability handling. If you already follow them, the CRA policy is largely a matter of writing down what you do and adding the Article 14 hand-off.
Frequently asked questions
- Do we have to run a bug bounty?
- No. A bounty is one way to encourage reports; the requirement is a working coordinated disclosure process with a published contact. Many manufacturers start with a clear policy and acknowledgements, and add rewards later.
- What if a researcher threatens to publish before the fix?
- Your policy's disclosure window and coordination commitments are your framework; a CSIRT can mediate. Document the communications — they are evidence of good-faith handling either way.
- Can the policy be one page?
- Yes, if it covers scope, channel, safe harbour, timelines, disclosure approach and credit. Clarity beats length; Vellaci generates a policy from an editable template with those sections and tracks the security.txt status per domain.