Ga naar inhoud

CVD ledger — consume + publish

Schema 108 (2026-05-25) shipt twee helften van dezelfde munt: we consumeren Anthropic’s publieke CVD ledger om operators early-warning te geven over packages met verzegelde vulns, en we laten software-vendor tenants hun eigen ledger publiceren in hetzelfde formaat — nuttig bewijs voor CRA Annex I §11-12.

Pad A — Anthropic’s ledger consumeren (early warning)

Anthropic’s coordinated-vulnerability-disclosure programma publiceert SHA-3-512 hash commitments van verzegelde rapporten voordat het disclosure-window sluit. De effective vuln-details worden pas later publiek, maar de project-naam + bug-class + commitment-hash zijn direct zichtbaar. monsys consumeert die feed dagelijks en matcht tegen jouw inventaris.

ComponentWat
CVDLedgerWorkerPolt red.anthropic.com/2026/cvd/ledger/payload.json elke 24u
cvd_ledger_entriesLokale cache van elke ledger entry ooit gezien
cvd_predisclosure_findingsPer-(tenant, agent, entry) match tegen inventory_packages + inventory_dependencies
/recommendations categorie cvd.predisclosureToont matched findings — severity = medium voor pre-disclosure, high zodra disclosed, info zodra fixed

Privacy: de worker doet één-shot GET; geen per-tenant query-string, geen agent metadata verlaat de hub. Anthropic leert niks over jouw inventaris.

Operator playbook voor een CVD pre-disclosure hit:

  1. Noteer project-naam + bug-class.
  2. Pin je huidige werkende versie van dat package (bv. npm pin, pip-compile --upgrade-package, apt-mark hold).
  3. Abonneer je op de upstream release-feed van het project.
  4. Plan een patch-window rond disclosure_eta. Wanneer details landen, kan je in uren bewegen, niet dagen.
  5. Acknowledge de finding zodra je preventieve actie hebt ondernomen.

Pad B — Je eigen tenant-ledger publiceren

Als je tenant een software vendor is onder CRA Annex I §11-12 (“de fabrikant moet vulnerabilities effectief afhandelen”), kan je je eigen ontdekte vulns publiceren in hetzelfde patroon dat Anthropic gebruikt:

  1. Commit fase (POST /api/v1/vuln-ledger):
    • Body: { project, bug_class, payload, disclose_at }
    • We berekenen SHA-512 van de canonical-serialised payload, versleutelen het met CLOUD_ENCRYPTION_KEY, slaan beide op, en ankerieren de hash in onze bestaande transparency log (mig 092) zodat hij deel uitmaakt van de monotonic hash-chain.
  2. Public view (GET /v/{public_slug}/ledger): geen auth, geen tenant_id leak. Pre-disclosure entries tonen alleen project + bug class + hash + committed_at. Na disclose_at en zodra je status PATCHt naar disclosed/fixed, worden public_summary + advisory_id + fix_commit_url zichtbaar.
  3. Tamper-evidence: elke transparency_entry_id referenceert de publieke hash-chain. Een auditor kan verifiëren “jouw commitment zat in de chain op positie N voor tijd T”.

Endpoints:

MethodePadAuthWat
GET/api/v1/vuln-ledgercookieOperator-side lijst (alle states)
POST/api/v1/vuln-ledgercookieCommit een sealed entry
PATCH/api/v1/vuln-ledger/:idcookieUpdate status / public summary / advisory_id / fix_commit_url
GET/v/:slug/ledgergeenPublic ledger view (rate-limited 60/min)

Tenant slug: auto-seeded naar lower(first 12 chars van tenant_id) bij mig 108 toepassing. Override via UI later.

Compliance: nieuwe control CRA-AnnexI-11-vuln-handling automatisch geëvalueerd door tenant_vuln_ledger entries van de laatste 90 dagen te tellen.

Waarom twee helften van één munt

Het patroon is identiek in beide richtingen:

Ontdekking → Cryptografische commitment NU
Sealed details
Disclosure window
Publieke reveal

Wanneer Anthropic ontdekt, consumeer je. Wanneer jouw tenant ontdekt, publiceer je in hetzelfde formaat. De transparency-log anker maakt beide helften verifieerbaar voor elke derde partij met een script.

Wat dit NIET vervangt

  • Publieke CVE assignment: je vult nog steeds een CVE in bij MITRE / de package’s CNA. We geven geen CVE IDs uit.
  • Coordinated disclosure met de maintainer: menselijk werk, buiten het platform.
  • Pen-test of vuln-discovery zelf: we leggen vast wat jij vindt; vinden is je team z’n werk (of dat van een research firm).

Verifieer je ledger vanaf de CLI

Terminal window
# Haal de publieke payload op
curl -s https://api.monsys.ai/v/<slug>/ledger | jq
# Cross-verifieer een hash tegen de transparency log
curl -s https://api.monsys.ai/api/v1/transparency/log/<entry_id> | jq
# Anthropic's bron (voor context)
curl -s https://red.anthropic.com/2026/cvd/ledger/payload.json | jq