Repository navigation
Releases: cpeoples/cudabom
Release list
v0.1.0
CudaBOM
First public release of cudabom, an open-source Rust CLI that proves which
NVIDIA CUDA software is actually inside a built artifact and turns that
evidence into SBOM, advisory, and VEX data.
cudabom scans compiled, packaged artifacts (Python wheels, shared libraries,
executables, static archives, and container image layers), identifies the CUDA
components physically inside them, and correlates each identified version
against NVIDIA's security bulletins. It reads what the build produced, not what
the source or dependency manifests declared, so it finds CUDA that is
statically linked, vendored, or renamed. It never runs, loads, or JIT-compiles
what it scans, and it needs no GPU.
cudabom is an independent project. It is not an NVIDIA product and is not
affiliated with NVIDIA.
What you can do with it
scan: identify CUDA components in an artifact, correlate them to NVIDIA
advisories, and optionally fail the build with--fail-on foundor
--fail-on affected.gate: enforce a policy file (severity floors, component allow and deny
lists) for CI.enrich: add the CUDA an existing CycloneDX SBOM missed, keeping the input
document byte for byte and adding only the new components.reconcile: compare what a vendor declared (SBOM and VEX) against what
cudabom discovered, bucketing each component as matched, declared only, or
discovered only.vex: emit a CycloneDX 1.6 VEX document carrying the advisory verdicts.explain: show the evidence behind a single finding.updateanddb: install or refresh the versioned fingerprint and advisory
data.
Output formats: table, native JSON (with a published schema via
cudabom schema), CycloneDX, SARIF, and Markdown. Write any of them to a file
with -o.
Identification model
Every finding carries an evidence model with EXACT, LIKELY, or UNKNOWN
confidence, backed by concrete evidence such as a matched SHA-256, a build-id,
or a symbol set. cudabom never asserts more than the evidence supports: a
confident wrong answer is treated as worse than reporting unknown. Output is
deterministic so diffs and snapshots stay meaningful.
Data in this release
cudabom ships as a single binary that carries no data. The fingerprint and
advisory data is published separately as a signed bundle and installed with
cudabom update.
- Fingerprints spanning CUDA 11.4.2 through 13.4.3, plus the cuDNN, NCCL,
cuDSS, cuTENSOR, cuSPARSELt, cuBLASMp, cuQuantum, nvCOMP, nvJPEG2000, nvTIFF,
NVPL, NVSHMEM, and Jetson product families. - 76 NVIDIA security advisories normalized from NVIDIA's machine-readable CSAF
bulletins, with version-range verdicts.
Install
Each channel drops the same cudabom executable on your PATH. After
installing, run cudabom update once to fetch the data bundle.
cargo install cudabom # crates.io
brew install cpeoples/tap/cudabom # Homebrew
snap install cudabom # Snap Store
pip install cudabom # PyPI (also: uvx cudabom)Prebuilt binaries are attached to this release for:
- Linux x86_64 and aarch64
- macOS x86_64 and aarch64 (Apple silicon)
- Windows x86_64
Supply chain and provenance
- Release archives are covered by SLSA Build Level 3 provenance generated by
the trusted slsa-github-generator reusable workflow. - A CycloneDX SBOM is produced from the Cargo dependency graph.
- Every archive, the SBOM, and the data bundle are signed with Sigstore.
- The data bundle is verified against its SHA-256 sidecar on download.
Verify a download with slsa-verifier and cosign against the attached
.intoto.jsonl and signature files.
Security posture
All crates build under #![forbid(unsafe_code)] with panic-free parsers and
bounded extraction. CI runs on hardened runners with SHA-pinned actions and
gates on cargo-audit, cargo-deny, CodeQL, and OpenSSF Scorecard. Report
vulnerabilities via a private advisory as described in SECURITY.md.
Links
- Documentation: https://cpeoples.github.io/cudabom/
- Repository: https://github.com/cpeoples/cudabom
- License: Apache-2.0