inside audr · pillar 02
Audr orchestrates four scanners. It does not maintain a fifth vuln database.
Most security tools either roll their own vulnerability database (and fall
behind) or wrap one (and miss the others). Audr coordinates the scanners
the open-source security community already maintains, plus a native rule
engine for AI-agent posture, and presents one deduplicated report.
The DB authors do their job. Audr does the orchestration.
The four backends
Each backend has a single job. Audr re-keys findings into a unified
fingerprint, dedup-groups them by underlying advisory, classifies fix
authority (you / maintainer / upstream), and emits the combined result.
01
Native agent-rule engine
in-repo
scans
AI-agent and developer-machine configuration surfaces
emits
Agent-config finding
license
FSL-1.1-MIT (audr's source license)
Audr's own pattern + AST rules for MCP servers, Claude Code settings, Cursor permissions, Codex CLI config, Windsurf, GitHub Actions workflows, shell rcs, and agent skills. The cron-driven CVE pipeline lands new rules as advisories ship — see /coverage for the live count.
scans
Package CVEs across npm, Go, PyPI, Crates.io, Maven, and more
emits
Dep-package finding
license
Apache-2.0 (Google)
Google's open-source scanner against the OSV.dev database. Audr orchestrates osv-scanner against the manifest files it finds on the developer machine and re-keys findings into audr's dedup + fix-authority taxonomy. The vuln DB is OSV; audr does not maintain a parallel DB.
scans
Exposed secrets with provider validation
emits
Secret finding
license
MIT (Betterleaks)
Secret scanner with active provider validation — Betterleaks doesn't just regex-match credential shapes, it (optionally) verifies they're live by hitting the issuing provider's identity endpoint. Audr invokes it via `audr scan --secrets` and folds findings through redaction + dedup. Valid vs. unverified findings collapse into one fingerprint so a validation flap doesn't churn finding identity.
04
ospkg
in-repo · Linux only
scans
OS-package CVEs (dpkg / rpm / apk)
emits
OS-package finding
license
FSL-1.1-MIT (audr's source license)
Audr enumerates installed OS packages via dpkg-query / rpm / apk, hands the list to OSV-Scanner's --osv-bundle mode, and surfaces CVEs against the operating system itself. Linux-only by design; macOS and Windows do not have an equivalent system-wide package inventory.
Why orchestration instead of one big scanner
01 — focus
Each backend is the best at one job. OSV.dev curates package CVEs at a
cadence no in-repo rule set can match. Betterleaks validates secrets
against live provider endpoints. ospkg knows OS package managers.
Audr's job is the agent-config layer no one else covers — and then
stitching the rest together.
02 — trust posture
A vuln DB is a moat that ages. Audr does not own one. When OSV.dev
adds an advisory, audr picks it up at the next scan with no audr
release required. When Betterleaks adds a provider, audr's secret
coverage grows with it. We follow upstream; we don't fork.
03 — dedup is the value-add
The same OpenClaw CVE shows up in package.json, package-lock.json,
yarn.lock, and a vendored copy under node_modules. OSV-Scanner reports
four findings; audr dedup-groups them by advisory + ecosystem + package
+ fixed-version, surfaces one row, and lists the affected paths under
it.
04 — fix authority
Each finding is classified as your-fix, maintainer-fix, or upstream-fix.
A secret in your repo is your-fix. A CVE in a vendored plugin under
~/.cursor/extensions is the plugin maintainer's fix. The CLI's
--fix-authority you filter is the natural input
for a coding agent — the other classes need human action.
Try it
The single binary ships with all four backends wired up. OSV-Scanner and
Betterleaks are installed on-demand on first scan; ospkg is built in and
only runs on Linux. The local-machine scan never uploads anything by
default.