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

  1. Scope: which products, versions and services are covered; what is out of scope (third-party services, social engineering, denial of service).
  2. How to report: an e-mail address and/or web form, PGP key, what to include, preferred languages.
  3. Safe harbour: a commitment not to pursue good-faith research that respects the scope, and what 'good faith' means.
  4. 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.
  5. Coordination: how you communicate progress, whether you support CVE assignment, how you coordinate with downstream manufacturers and CSIRTs.
  6. Credit: how researchers are acknowledged, and an opt-out.
  7. 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

SectionWhat to write
1. Purpose and scopeWhich products, versions, domains and services; what is excluded
2. How to reportE-mail and form, PGP key, what to include (product, version, steps, impact), languages
3. Our commitmentsAcknowledge 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. DisclosureDefault 90-day coordinated window; earlier if fixed; extensions by agreement; how CVEs are assigned
6. RecognitionHall of fame and, where offered, rewards; opt-out
7. Third-party componentsHow we handle reports about components we integrate, and how we pass them upstream
8. Contact and versionsecurity.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.

Ready to operationalise this?

Start with the free preliminary assessment — sixteen questions, about eight minutes.