Ledger CVD — consommer + publier
Le schéma 108 (2026-05-25) livre deux faces d’une même pièce : nous consommons le ledger CVD public d’Anthropic pour donner aux opérateurs une alerte précoce sur des paquets avec des vulnérabilités scellées, et nous permettons aux tenants software-vendor de publier leur propre ledger dans le même format — preuve utile pour CRA Annexe I §11-12.
Voie A — Consommer le ledger d’Anthropic (alerte précoce)
Le programme de divulgation coordonnée d’Anthropic publie des commitments hash SHA-3-512 de rapports scellés avant la fermeture de la fenêtre de divulgation. Les détails effectifs ne deviennent publics que plus tard, mais le nom de projet + bug class + commitment hash sont visibles dès le premier jour. monsys consomme ce flux quotidiennement et le matche contre votre inventaire.
| Composant | Quoi |
|---|---|
CVDLedgerWorker | Sonde red.anthropic.com/2026/cvd/ledger/payload.json toutes les 24 h |
cvd_ledger_entries | Cache local de chaque entrée ledger jamais vue |
cvd_predisclosure_findings | Match par (tenant, agent, entry) contre inventory_packages + inventory_dependencies |
Catégorie /recommendations cvd.predisclosure | Affiche les findings matchés — severity = medium pour pre-disclosure, high une fois divulgué, info une fois fixé |
Confidentialité : le worker fait un GET one-shot ; pas de query-string par tenant, pas de métadonnée agent ne quitte le hub. Anthropic n’apprend rien sur votre inventaire.
Playbook opérateur pour un hit CVD pré-divulgation :
- Notez le nom du projet + bug class.
- Épinglez votre version actuelle qui fonctionne (ex :
npm pin,pip-compile --upgrade-package,apt-mark hold). - Abonnez-vous au flux de release upstream du projet.
- Planifiez une fenêtre de patch autour de
disclosure_eta. Quand les détails atterrissent, vous pouvez bouger en heures, pas en jours. - Acquittez le finding une fois que vous avez pris une action préventive.
Voie B — Publier votre propre ledger tenant
Si votre tenant est un software vendor sous CRA Annexe I §11-12 (“le fabricant doit gérer les vulnérabilités efficacement”), vous pouvez publier vos propres vulns découvertes selon le même pattern qu’utilise Anthropic :
- Phase commit (
POST /api/v1/vuln-ledger) :- Body :
{ project, bug_class, payload, disclose_at } - Nous calculons SHA-512 du payload canonical-sérialisé, le
chiffrons avec
CLOUD_ENCRYPTION_KEY, stockons les deux, et ancrons le hash dans notre transparency log existant (mig 092) pour qu’il fasse partie de la hash-chain monotone.
- Body :
- Vue publique (
GET /v/{public_slug}/ledger) : pas d’auth, pas de fuite tenant_id. Les entrées pré-divulgation montrent seulement project + bug class + hash + committed_at. Aprèsdisclose_atet une fois que vousPATCHez status àdisclosed/fixed, le public_summary + advisory_id + fix_commit_url deviennent visibles. - Tamper-evidence : chaque
transparency_entry_idréférence la hash-chain publique. Un auditeur peut vérifier “votre commitment était dans la chain à la position N avant le temps T”.
Endpoints :
| Méthode | Path | Auth | Quoi |
|---|---|---|---|
| GET | /api/v1/vuln-ledger | cookie | Liste côté opérateur (tous les états) |
| POST | /api/v1/vuln-ledger | cookie | Commit une entrée scellée |
| PATCH | /api/v1/vuln-ledger/:id | cookie | Met à jour status / public summary / advisory_id / fix_commit_url |
| GET | /v/:slug/ledger | aucune | Vue publique du ledger (rate-limited 60/min) |
Slug tenant : auto-seedé à lower(12 premiers chars du tenant_id)
à l’application de mig 108. Override via UI plus tard.
Conformité : nouveau contrôle CRA-AnnexI-11-vuln-handling
auto-évalué en comptant les entrées tenant_vuln_ledger committées
dans les 90 derniers jours.
Pourquoi deux faces d’une pièce
Le pattern est identique dans les deux sens :
Découverte → Commitment cryptographique MAINTENANT ↓ Détails scellés ↓ Fenêtre de divulgation ↓ Révélation publiqueQuand Anthropic découvre, vous consommez. Quand votre tenant découvre, vous publiez dans le même format. L’ancrage transparency-log rend les deux faces vérifiables par n’importe quel tiers avec un script.
Ce que ceci NE remplace PAS
- Assignation CVE publique : vous remplissez toujours une CVE auprès de MITRE / le CNA du paquet. Nous n’émettons pas d’IDs CVE.
- Divulgation coordonnée avec le maintainer : travail humain, hors plateforme.
- Pen-test ou découverte de vuln elle-même : nous enregistrons ce que vous trouvez ; trouver est le travail de votre équipe (ou d’une firme de recherche).
Vérifier votre ledger en CLI
# Pull du payload publiccurl -s https://api.monsys.ai/v/<slug>/ledger | jq
# Cross-verify d'un hash contre le transparency logcurl -s https://api.monsys.ai/api/v1/transparency/log/<entry_id> | jq
# Source Anthropic (pour contexte)curl -s https://red.anthropic.com/2026/cvd/ledger/payload.json | jq