14-day free trial, no credit card

CRA vulnerability handling, made boring.

Since 11 September 2026, exploited vulnerabilities must be reported within 24 hours. boring.tools watches your SBOMs and drafts the reports.

CRA reports / CVE-2026-45321
Example case

CVE-2026-45321

CISA KEVENISA EUVD

Actively exploited in Lagerwerk Portal, detected 3 h ago

Early warning

Next

Within 24 hours of detection

due in21:13:52

Notification

due in 2 days

Final report

waiting for a fix

  1. AI pre-wrote the report draft2 h ago
  2. Emailed owners and admins3 h ago
  3. Detected as actively exploited3 h ago

The CRA turned dependency updates into a legal deadline

And in most companies, one person ends up owning it, next to everything else.

  1. 0 h

    You become aware

    An actively exploited vulnerability in a product you sell.

  2. 24 h

    Early warning

    To your CSIRT and ENISA, naming the member states where the product is sold.

  3. 72 h

    Notification

    The product, the vulnerability and exploit, the measures taken.

  4. Fix + 14 days

    Final report

    Severity and impact, the attacker if known, the security update.

Art. 14 CRA, in force since 11 September 2026

The 24-hour clock is running

An actively exploited vulnerability in a product you sell has to be reported within 24 hours. You can't report what you don't know you ship.

Hundreds of findings, one person

Every scanner finds something. Deciding what actually affects your product is the slow part, and it starts over with every release.

Proof on request

Customers and authorities ask what you knew and what you decided. A spreadsheet and a Slack thread won't answer that.

Three steps. Then it gets boring.

Set it up once in your pipeline. Look at it when it matters.

  1. Upload

    Your build already produces an SBOM (cyclonedx-npm, cdxgen, Syft …). One curl call in CI sends it to boring.tools. No agent, no repository access.

  2. Watch

    Every component is matched against OSV. When the vulnerability data changes, your versions in support are re-checked on their own.

  3. Decide

    AI suggests a VEX status with its reasoning, you accept or reject. Every decision is kept with its history and exported as OpenVEX.

sbom-upload#482

v2.4.0 · 3f9a2c1 · push

running…
█

What works today

Everything on this list is in production use.

See

What you ship and what affects it.

CI upload in one call

CycloneDX or SPDX JSON via upload keys that belong to your organization, scoped to one project or all of them. Snippets for GitHub Actions and GitLab CI.

Continuous matching

Components are matched against our OSV copy, checked for updates every five minutes, with the version rules of each ecosystem. Versions in support are re-analysed automatically.

Exploited first

Findings listed in CISA KEV or ENISA EUVD as actively exploited come first, then by EPSS. A CVSS 5 that is being exploited beats a theoretical 9.8.

Dependency graph

Direct or transitive, and which direct dependency pulled it in. So you know which upgrade actually fixes a finding.

Decide

What actually affects your product, on record.

VEX triage with history

Affected, not affected, fixed or under investigation, with justification. Decisions belong to the release, so they survive new uploads.

AI pre-triage

Suggestions based on your deployment profile, with a confidence and a monthly budget. A person always makes the final call.

OpenVEX export & fix hints

Export your decisions as OpenVEX for customers. For npm, get the upgrade command that resolves a finding.

Report

Deadlines, drafts and reminders under Art. 14.

CRA reporting cases

An exploited vulnerability in a product opens a case with the Art. 14 clock: early warning in 24 h, notification in 72 h, final report after the fix. Each step comes with a pre-filled draft to paste into ENISA's platform.

Quiet alerts

An email when a case opens and before each deadline, otherwise one short digest on Mondays, and only when there is something to look at.

A CRA reporting case in boring.tools

Your data stays in formats you can take with you

SBOMs in, VEX out. No proprietary lock-in.

In

  • CycloneDX

    SBOM import (JSON)

  • SPDX

    SBOM import (JSON)

  • OSV, KEV, EUVD, EPSS

    vulnerability and exploit data

Out

  • OpenVEX

    VEX export

  • CSAF 2.0

    in progress

In progress

Next: the rest of the CRA chain

We're building these next. They are not available yet.

  • CSAF 2.0 export

    The VEX format German industry customers and the BSI expect, generated from the same decisions.

  • CRA status per product

    A traffic light and a monthly PDF for management: SBOM current, findings handled, deadlines met.

  • SBOM quality check

    Every upload scored against BSI TR-03183-2, with the fix for each gap.

How it stacks up

An honest comparison with what most teams use today.

 boring.toolsDependency-TrackSpreadsheet
Continuous CVE matching on SBOMs
Triage decisions with historymanual
AI pre-triage, human decides
Nothing to operate
CRA reporting workflow (Art. 14)manual
CSAF exportin progress
Self-hostingplanned

Frequently asked questions

Everything else you'd ask before signing up.

Something else? Write to us.
Is boring.tools ready for production use?

Yes. Upload, matching, triage, the CRA reporting cases with email alerts and the OpenVEX export are in production use. CSAF export and a CRA status report are on the roadmap.

Do you generate SBOMs?

No. Your build can already do that: cyclonedx-npm, cdxgen or Syft take one line in CI. We take the CycloneDX or SPDX JSON and focus on what happens afterwards.

Which ecosystems are covered?

Matching covers npm, PyPI, Go, Maven, crates.io, RubyGems, Packagist and NuGet, each with its own version rules (semver, PEP 440, Maven-style qualifiers). Operating system packages from container images are next.

Where does the vulnerability data come from?

From OSV, which aggregates GitHub Security Advisories and the Python, Go and Rust advisory databases, among others. Whether a vulnerability is actively exploited comes from CISA KEV and ENISA's EU vulnerability database, the likelihood of exploitation from EPSS.

Does the AI decide for me?

No. It suggests a VEX status with its reasoning; a person accepts or rejects it. AI triage is optional and switched on per project.

Does boring.tools make us CRA-compliant?

No tool does that on its own. boring.tools covers vulnerability handling and the Art. 14 reporting workflow. Conformity assessment, technical documentation and secure development stay with you.

Can I self-host it?

Self-hosting is planned as an option for larger customers. Until then boring.tools runs as a hosted service.

What will it cost?

There is a free plan for one product, Starter at €149 and Business at €449 a month per organization, with unlimited users. Every new organization gets 14 days of Business to try it. See the pricing page.

How do I get access?

Sign up in the app with your work email. You get a sign-in link, there are no passwords.

Get boring about the CRA.

Start your 14-day trial. No credit card, set up in minutes.

Start free trial

Sign in with a link sent to your work email