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.md or 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 report

Bank the awareness record

Reserve a founding place — £0 today, cancel any time before launch.

Reserve a founding place