Contact Us
← All blogs Product Launch

Introducing Osprey: Security Visibility for the Software Supply Chain

Sep 19, 2026 · 5 min read · Purple Lotus

Today we're launching Osprey, our open-source CLI (cra) for software supply chain visibility. You can find it on GitHub at Purplelotusec/Osprey.

Osprey builds a Software Bill of Materials (SBOM) from your project, cross-checks every component against the CISA Known Exploited Vulnerabilities (KEV) catalog, and tells you which dependencies are actively exploited in the wild — not merely “have a CVE.”

The Problem We Built It For

Most vulnerability tooling stops at “this package has a CVE.” That produces a lot of tickets and very little prioritization: a scanner that flags every CVE in your dependency tree, regardless of whether it's actually being exploited, trains teams to ignore the output. Osprey narrows the question to the one that actually matters for triage — is this specific component, at this specific version, known to be exploited right now?

What Osprey Does

How It Works

Software / Repository
        ↓
   Dependencies
        ↓
       SBOM
        ↓
 Vulnerability Analysis
        ↓
    CISA KEV Match
        ↓
  Security Signal
        ↓
 Investigate & Respond

Instead of treating every vulnerability as the same, Osprey adds context around the software component, affected version, and known exploitation status.

Running it

A single command runs the whole pipeline: generate the SBOM, poll the KEV catalog, cross-check components, and report.

cra --path /path/to/your/project

Or point it at a GitHub repository directly, without cloning it locally:

cra --url owner/repo

When something is found, Osprey names the CVE, the exact affected component and version, and whether the OSV evidence actually covers your installed version — not just the package name:

versionStatusMeaning
affectedOSV evidence covers the installed version
not_affectedAvailable evidence excludes the installed version
unknownEvidence couldn't be established — never treated as affected

exploitationStatus: "known_exploited" comes from CISA KEV independently of the OSV version check, so the two signals stay clearly separated rather than blended into one confidence-eroding score.

Why CISA KEV Matters

Vulnerability scanners can produce large numbers of findings. The CISA Known Exploited Vulnerabilities (KEV) Catalog provides an additional signal by tracking vulnerabilities known to have been exploited in the wild.

Osprey correlates that information with the dependencies found in a project, helping teams identify when actively exploited vulnerabilities may affect software they build or ship.

How Osprey Supports the EU CRA

The EU Cyber Resilience Act (CRA) introduces requirements around cybersecurity, vulnerability handling, security updates, and vulnerability reporting for products with digital elements.

The CRA creates a need for organizations to have visibility into vulnerabilities affecting their products and to respond to applicable actively exploited vulnerabilities through the relevant reporting process.

Osprey is not a CRA compliance or regulatory reporting platform, and its output is not intended to be relied on, or presented to an auditor, as proof of compliance on its own. Instead, it provides a technical visibility layer that can support the workflow:

Know what you ship
        ↓
Identify affected components
        ↓
Check exploitation status
        ↓
Investigate and respond
        ↓
Support your security process

Mapped against specific CRA themes, that looks like:


Know what you ship. Know what is affected. Know what is being exploited.

Osprey brings software inventory and exploitation intelligence together so security teams can act with better context.

Built to Be Honest About Its Own Limits

We'd rather Osprey under-claim than over-claim. A few things worth knowing before you rely on it:

Get Started

git clone https://github.com/Purplelotusec/Osprey
cd Osprey
npm install
npm link   # installs cra, cra-audit, cra-sbom, cra-kev, cra-report globally

cra --path .

For CI, add --fail-on-high to exit non-zero only on high-confidence, actively exploited matches:

cra --path . --fail-on-high --output results.json

Explore Osprey

Osprey is open source and available on GitHub. Full CLI reference, structured JSON output schema, and architecture notes are in the repository README.

View Osprey on GitHub →


This article is for general educational and product-information purposes. Osprey does not by itself establish CRA compliance, and it is not intended to be relied on — or presented to an auditor — as proof of compliance. Organizations should assess their specific obligations against the applicable EU legislation, standards, and official guidance.

Security that ships
with your code.

PurpleLotus