Parses CycloneDX 1.4–1.6 and SPDX 2.2/2.3, matches components purl-first against OSV.dev,
CISA KEV and ENISA EUVD, scores CVSS v3.1 and speaks ecosystem version rules — semver,
Debian EVR, RPM. --fail-on gates your CI; offline mode runs air-gapped.
$ aisthetix scan build/sbom.cdx.json --fail-on kev
HOSTED MONITORING — MULTI-TENANT
Upload an SBOM per product version; scans run as async jobs on a Postgres
SKIP LOCKED queue. Findings keep their triage state across rescans — a human decision
is never overwritten by a robot. Every read is tenant-scoped, every action lands in the audit log.
OSV bulk archives bootstrap the advisory cache; modified_id.csv deltas keep it
current. Changed advisories trigger targeted rescans — only the SBOMs whose match keys
overlap, found with one indexed query. No nightly full-fleet rescan theatre.
The KEV catalog is diffed on every cycle. A CVE entering "known exploited" flips your affected
findings in one pass — ransomware-campaign flags included — and your PSIRT is emailed immediately.
Under Art. 14, actively exploited is the phrase that starts the clock.
ALERTS — SIGNAL OVER NOISE
Exploited findings alert immediately; everything else arrives as a daily digest. Delivery goes
through the job queue — SMTP with retry and backoff — so an alert is a record, not a hope.