🔒️ build-push refuse de publier une image qui porte une CVE HIGH ou CRITICAL corrigeable (RF_CICD#7) #3

Merged
bbaudouin merged 1 commits from ci/7-scan-cve-bloquant into develop 2026-10-07 22:24:00 +02:00
Member

Refs raggaroth-factory/RF_CICD#7, étape 3 sur 3 : le contrôle.

Entre la construction et la publication, Trivy examine l'image, exportée en répertoire OCI. Rien n'est publié avant son verdict.

  • Seuil, décidé par Benjamin le 2026-10-07 : une CVE HIGH ou CRITICAL corrigeable bloque. Le reste est rapporté sans bloquer. Ce n'est pas une entrée de l'action : un dépôt ne peut pas l'abaisser pour lui seul.
  • Exceptions : un .trivyignore.yaml à la racine du dépôt appelant. Chaque entrée exige statement et expired_at, et l'action refuse le fichier s'il en manque un.
  • Rapport : la liste complète des HIGH et CRITICAL, corrigeables ou non, est publiée dans un groupe repliable du journal.

Banc (2026-10-07)

Ubuntu 24.04 non privilégié, buildah 1.33.7, trivy 0.75.0 vérifié par empreinte, registre jetable. Le script de l'étape est extrait de ce YAML et exécuté tel quel.

# Scénario Résultat
1 frontend actuel ❌ bloqué : libexpat, pcre2 (HIGH corrigeables)
2 + apk upgrade ✅ publié
3 n°1 + exceptions datées dans le futur ✅ publié
4 n°1 + exceptions expirées ❌ bloqué
5 exception sans expired_at ❌ refusé à la validation

Constaté en route : trivy --input refuse une archive OCI. Il n'accepte que l'archive Docker ou le répertoire OCI.

À fusionner en dernier

Après RF_CICD (image de job -3 construite et en service) et le correctif frontend PRJ002#95. Puis la release vers main, que les consommateurs appellent.

🤖 Generated with Claude Code

Refs raggaroth-factory/RF_CICD#7, étape 3 sur 3 : le contrôle. Entre la construction et la publication, **Trivy examine l'image**, exportée en répertoire OCI. Rien n'est publié avant son verdict. - **Seuil**, décidé par Benjamin le 2026-10-07 : une CVE **HIGH ou CRITICAL corrigeable** bloque. Le reste est rapporté sans bloquer. Ce n'est **pas** une entrée de l'action : un dépôt ne peut pas l'abaisser pour lui seul. - **Exceptions** : un `.trivyignore.yaml` à la racine du dépôt appelant. Chaque entrée exige `statement` et `expired_at`, et l'action refuse le fichier s'il en manque un. - **Rapport** : la liste complète des HIGH et CRITICAL, corrigeables ou non, est publiée dans un groupe repliable du journal. ## Banc (2026-10-07) Ubuntu 24.04 non privilégié, buildah 1.33.7, trivy 0.75.0 vérifié par empreinte, registre jetable. Le script de l'étape est **extrait de ce YAML** et exécuté tel quel. | # | Scénario | Résultat | |---|---|---| | 1 | frontend actuel | ❌ bloqué : libexpat, pcre2 (HIGH corrigeables) | | 2 | + `apk upgrade` | ✅ publié | | 3 | n°1 + exceptions datées dans le futur | ✅ publié | | 4 | n°1 + exceptions expirées | ❌ bloqué | | 5 | exception sans `expired_at` | ❌ refusé à la validation | Constaté en route : `trivy --input` refuse une archive OCI. Il n'accepte que l'archive Docker ou le répertoire OCI. ## À fusionner en dernier Après RF_CICD (image de job `-3` **construite et en service**) et le correctif frontend PRJ002#95. Puis la release vers `main`, que les consommateurs appellent. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
george-claude added 1 commit 2026-10-07 22:17:42 +02:00
Entre la construction et la publication, Trivy examine l'image, exportée
en répertoire OCI : pas de démon, et rien n'est publié avant le verdict.

Seuil décidé par Benjamin le 2026-10-07 : HIGH et CRITICAL corrigeables
bloquent ; le reste est rapporté sans bloquer. Le seuil n'est pas une
entrée : un dépôt ne l'abaisse pas pour lui seul. Exceptions dans
.trivyignore.yaml, chacune avec « statement » et « expired_at » —
vérifiés par l'action, faute de quoi elle refuse le fichier.

Banc du 2026-10-07, Ubuntu 24.04 non privilégié, buildah 1.33.7, trivy
0.75.0 vérifié par empreinte, registre jetable :
  1. frontend actuel          → bloqué (libexpat, pcre2 HIGH corrigeables)
  2. + apk upgrade            → publié
  3. + exceptions futures     → publié
  4. + exceptions expirées    → bloqué
  5. exception sans date      → refusé à la validation

Constaté en route : « trivy --input » refuse une archive OCI ; il veut
l'archive Docker ou le répertoire OCI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VyxLNGHojdXeRMQgWFgzRV
bbaudouin approved these changes 2026-10-07 22:23:48 +02:00
bbaudouin merged commit 9d88bc3639 into develop 2026-10-07 22:24:00 +02:00
bbaudouin deleted branch ci/7-scan-cve-bloquant 2026-10-07 22:24:00 +02:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: public/RF_ACTIONS#3