CRA Article 14: the upstream component notification obligation
Updated 2026-08-07
The duty most tooling ignores
Alongside reporting your own actively exploited vulnerabilities, Article 14 requires you to notify the manufacturer or maintainer of a third-party component when you discover a vulnerability in that component. If a dependency you ship turns out to be vulnerable, telling its maintainer is part of the obligation — not a courtesy.
This leg of Article 14 is small, unglamorous, and structurally unoccupied: most CRA workflows stop at your own ENISA submission and never touch the third-party notification at all.
What it asks, concretely
- Discover a vulnerability in a component you depend on (via your own analysis, a disclosure, or an exploitation signal).
- Resolve the maintainer contact — from registry metadata (npm, PyPI, NuGet, Maven, Go) and the
repository's
SECURITY.mdor security-policy file where present. - Send a notification to that maintainer describing the issue.
- Record the notification and its timestamp. This record is itself evidence that you met the duty, which is the point.
Why the record matters
Article 14 is, in practice, a series of timestamped facts: when you became aware, when you notified ENISA, and — here — when you notified the upstream maintainer. A defensible log of those timestamps is what you show counsel and, if it comes to it, a regulator. The notification is easy to draft once; the discipline is capturing that it happened, and when.
The readiness report includes an upstream-notification line in its checklist so you can see whether this process exists before you need it. Generating the maintainer draft from a signal, and logging it, is exactly the kind of small, real gap the Article 14 module is built to close.
Questions
- Do I have to tell the maintainer of a dependency about a vulnerability I find in it?
- Yes. Article 14 includes a duty to notify the manufacturer or maintainer of a third-party component when you discover a vulnerability in it. It is separate from your ENISA reporting and is itself evidence of diligence.
- How do I find the maintainer contact?
- From registry metadata (npm, PyPI, NuGet, Maven, Go) and the repository's security policy where one exists. Recording the notification and its timestamp is the part that matters for evidence.
- Is anyone building tooling for this?
- Not really. The upstream-notification duty is small and structurally unoccupied — most CRA tooling stops at your own ENISA report and ignores the third-party leg entirely.
See your own 24-hour exposure
Paste a dependency manifest — free, no email, nothing stored.
Run the free readiness reportBank the awareness record
Reserve a founding place — £0 today, cancel any time before launch.
Reserve a founding place