Poisoned Pipeline

Poisoned Pipeline / Techniques / T0210

T0210 · Persistence · TA05 · observed in 18 incident(s)

Poison AI coding-agent config or workspace

CI/CD Posture Code Security SCM Posture

The attacker writes into hidden agent directories and config that
developers and CI treat as local clutter — .claude/, .cursor/,
.vscode/, Copilot/Gemini/Codex settings, MCP server entries, or
Python .pth startup hooks. The next time the human or the agent
opens the project, attacker instructions run with the developer's
already-granted tools. Uninstalling a malicious package does not
clear this. Observed in Morphisec's Hades campaign, GTIG DUSTMAKER,
and Mandiant's hijacked coding-assistant case.

Where this idea came from

Public incident / advisory

Hades, Claude Code hooks; DEF CON 34: “The Sandbox is a Suggestion”, “No Prompt Required: Pre-Task RCE in Google Gemini CLI”, “Hacking Your Life with AI”, “Wrestling with a Python”, and “Your WAF Blocked Us” (Sternberg/Poran/Bobrov) — WAF logs and Sentry traces poison the agent, Seer infects Cursor, persistence is config poisoning. Catalog: content/portal/talks.yaml.

Mitigations

Detections

Observed in incidents (18)

References