Open-source CRA Readiness Scanner CLI for assessing EU Cyber Resilience Act readiness from SBOMs and project signals.
Project description
cra-scanner
Open source CLI tool for assessing EU Cyber Resilience Act (CRA) compliance readiness from SBOMs and project signals.
cra-scanner is developed by Complaro, an open source CRA compliance platform. The CLI is fully functional as a standalone tool under the MIT license. Complaro offers a hosted platform for teams that need continuous monitoring, ENISA reporting, and collaboration features.
Installation
pip install cra-scanner
Quick Start
Scan a project directory:
cra-scanner scan .
Scan with an explicit SBOM:
cra-scanner scan . --sbom path/to/bom.json
Output as JSON:
cra-scanner scan . --format json --output report.json
Fail if score is below a threshold (useful in CI/CD):
cra-scanner scan . --min-score 50
Disable live vulnerability scanning (offline/fast mode):
cra-scanner scan . --no-vuln-scan
Provide a GitHub token for higher advisory API rate limits:
cra-scanner scan . --github-token $GITHUB_TOKEN
CRA Readiness Score
The scanner returns a score from 0-100 based on:
| Dimension | Points | What it checks |
|---|---|---|
| SBOM | 40 | Presence, coverage, version completeness |
| Vulnerabilities | 30 | Known vulnerability exposure via OSV.dev, GitHub Advisories, CISA KEV |
| Practices | 30 | SECURITY.md, Dependabot, documentation |
The score is a directional indicator, not legal advice.
Vulnerability Scanning
cra-scanner queries real vulnerability databases for each component in your SBOM:
- OSV.dev (primary) — precise purl and ecosystem matching for npm, PyPI, Maven, Go, Cargo, and more
- GitHub Advisory Database (fallback) — ecosystem-specific advisory lookups
- CISA KEV (cross-reference) — flags actively exploited vulnerabilities that may trigger CRA 24-hour reporting obligations
Version range matching uses ecosystem-aware comparison:
- Semver for npm, Cargo, Go
- PEP 440 for Python/PyPI
- Explicit version lists when provided by the advisory
Each finding includes a confidence tier (high/medium/low) based on match precision.
SBOM Format Support
- CycloneDX JSON and XML
- SPDX JSON and tag-value
SBOMs are auto-discovered in your project directory, or you can specify one with --sbom.
GitHub Action
Use cra-scanner in your CI/CD pipeline:
name: CRA Compliance Check
on: [push, pull_request]
jobs:
cra-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run CRA Scanner
uses: complaro/cra-scanner/action@main
with:
min-score: 40
See action/README.md for full documentation.
Roadmap
- SBOM parsing (CycloneDX, SPDX)
- CRA readiness scoring
- Vulnerability matching against OSV.dev, GitHub Advisories, CISA KEV
- Version range comparison (semver, PEP 440)
- GitHub Action for CI/CD
- SARIF output for GitHub/GitLab code scanning
- CycloneDX VEX output
- Auto-SBOM generation from package managers
- CPE matching for NVD lookups
Complaro Platform
cra-scanner is a free, open source tool that runs locally. For teams managing multiple products, Complaro provides:
- Continuous vulnerability monitoring across all products
- ENISA report generation (24h, 72h, 14-day)
- Slack and Jira integrations
- CRA classification wizard
- Team collaboration and audit trail
Free for 1 product at complaro.com.
License
MIT - see LICENSE
Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cra_scanner-0.3.0.tar.gz.
File metadata
- Download URL: cra_scanner-0.3.0.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
145dfde823d7e7fca257772d6b856e45d17e395aa79dcf6ee0bf73466b2e96cb
|
|
| MD5 |
2458db81134a944725ff008518b90bcd
|
|
| BLAKE2b-256 |
9d1cdd3fc04d689ba9e363d36bdbf48163e704ee0c2cec11644daf74472443fb
|
File details
Details for the file cra_scanner-0.3.0-py3-none-any.whl.
File metadata
- Download URL: cra_scanner-0.3.0-py3-none-any.whl
- Upload date:
- Size: 24.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a4d567a5119267c38400fa981f782a26ea803e211c345b6716a54fe551e6391
|
|
| MD5 |
068e41caba3ba52412c2a2625b7738c8
|
|
| BLAKE2b-256 |
31a80dadaa42edeb0cbfd1a62b38c98880d80a9428eaa81351ab9a771bbc9e4e
|