Poisoned Pipeline Execution
La vulnérabilité CI/CD la plus dangereuse ne modifie pas une seule ligne de code applicatif. Elle modifie la pipeline — et exécute du code arbitraire dans le build avec ses droits et ses secrets.
Ce qu'est le PPE
La Poisoned Pipeline Execution (OWASP CICD-SEC-4) abuse de l'accès en écriture au système de contrôle de version pour que la pipeline CI exécute des commandes malveillantes — avec accès aux secrets, artefacts et au réseau interne du runner de build.
- D-PPE (Direct) : l'attaquant modifie directement la configuration CI (le fichier de workflow).
- I-PPE (Indirect) : il modifie des fichiers référencés par la CI — scripts de build, tests, configs de lint.
Megalodon : le PPE à l'échelle industrielle
Le 18 mai 2026, la campagne Megalodon a injecté, dans une seule fenêtre de 6 heures, des fichiers de workflow malveillants dans plus de 5 561 dépôts GitHub — un D-PPE de manuel, exploitant des dépôts à la protection de branche faible ou absente. Point décisif : l'attaquant n'a jamais modifié de code applicatif, seulement des définitions de pipeline — pratiquement invisibles pour les relecteurs de code.
L'attaque npm TanStack (11 mai 2026) a révélé des faiblesses apparentées : pull_request_target non sécurisé, cache poisoning et vol de token dans les workflows GitHub Actions.
La représentation
Voici comment se déroule une attaque PPE — et où PoisonZero la rompt lorsqu'un agent dans le runner dispose de chemins à protéger :
Protection de branche absente
Les PR de fork ou des règles faibles autorisent l'écriture dans les fichiers de pipeline.
Fichier de pipeline empoisonné
Seule la config workflow/CI est modifiée — le code applicatif reste intact.
Le runner exécute
Avec les droits et les secrets du job.
PoisonZero évalue les écritures dans les chemins d'agent/config protégés du runner.
danger 0.95 → revertExfil de secrets → backdoor
↳ Backdoor dans l'artefact signé
↳ Mouvement latéral vers d'autres dépôts
Pourquoi les relectures passent à côté
Les relecteurs de code regardent la logique métier. Un fichier de pipeline modifié passe entre les mailles — puis s'exécute avec tous les droits. C'est précisément cette couche « invisible » qui rend le PPE si efficace.
Où intervient PoisonZero
De plus en plus souvent, des agents IA tournent dans la pipeline (voir Les agents IA dans la pipeline CI/CD). PoisonZero protège leur Memory/config et évalue les écritures dans les chemins protégés en mode fail-closed — en lien : les vers de la supply chain.
Protégez les agents dans la pipeline.
PoisonZero évalue les écritures dans les chemins protégés — y compris sur les runners CI.
Tester 14 joursÀ lire aussi : Les vers de la supply chain · Les agents IA dans la pipeline CI/CD · Pourquoi le Fail-closed l'emporte