Poisoned Pipeline Execution
La vulnerabilidad de CI/CD más peligrosa no cambia ni una sola línea de código de la aplicación. Cambia la pipeline — y ejecuta código arbitrario en el build con sus permisos y sus secrets.
Qué es PPE
Poisoned Pipeline Execution (OWASP CICD-SEC-4) abusa del acceso de escritura al sistema de control de versiones para que la pipeline de CI ejecute comandos maliciosos — con acceso a los secrets, los artefactos y la red interna del runner de build.
- D-PPE (Direct): el atacante modifica la configuración de CI directamente (el archivo del workflow).
- I-PPE (Indirect): modifica archivos referenciados por el CI — scripts de build, tests, configuraciones de lint.
Megalodon: PPE a escala industrial
El 18 de mayo de 2026, la campaña Megalodon inyectó, en una única ventana de 6 horas, archivos de workflow maliciosos en más de 5.561 repos de GitHub — un d-PPE de manual que explotaba repos con protección de ramas débil o inexistente. Lo decisivo: el atacante nunca cambió código de aplicación, solo definiciones de pipeline — prácticamente invisible para los revisores de código.
El ataque a npm de TanStack (11 de mayo de 2026) mostró debilidades relacionadas: pull_request_target inseguro, cache-poisoning y robo de tokens en workflows de GitHub Actions.
La representación
Así se desarrolla un ataque PPE — y dónde lo corta PoisonZero cuando un agente en el runner tiene rutas que proteger:
Falta protección de ramas
Las PRs de forks o las reglas débiles permiten el acceso de escritura a los archivos de pipeline.
Archivo de pipeline envenenado
Solo se cambia la configuración del workflow/CI — el código de la app permanece intacto.
El runner ejecuta
Con los permisos y los secrets del job.
PoisonZero evalúa los accesos de escritura a rutas protegidas de agente/config en el runner.
danger 0.95 → revertExfil de secrets → Backdoor
↳ Backdoor en el artefacto firmado
↳ Movimiento lateral hacia otros repos
Por qué las revisiones lo pasan por alto
Los revisores de código miran la lógica de negocio. Un archivo de pipeline modificado se cuela — y luego se ejecuta con plenos permisos. Es justamente esta capa "invisible" la que hace tan eficaz al PPE.
Dónde actúa PoisonZero
Cada vez más, hay agentes de IA corriendo en la pipeline (véase Agentes de IA en la pipeline de CI/CD). PoisonZero protege su memoria/config y evalúa los accesos de escritura a rutas protegidas fail-closed — relacionado: Gusanos de la cadena de suministro.
Protege a los agentes en la pipeline.
PoisonZero evalúa los accesos de escritura a rutas protegidas — también en los runners de CI.
Probar 14 díasSeguir leyendo: Gusanos de la cadena de suministro · Agentes de IA en la pipeline de CI/CD · Por qué gana el Fail-closed