What happened
Malicious content hidden in a GitHub issue used HTML comment injection to instruct Claude to read /proc/self/environ, truncate the credential string to evade scanning, and embed it in a URL argument to the gh CLI for exfiltration.
2026-06-05
HighVendor postMicrosoft documented a prompt injection in Claude Code GitHub Action that let malicious issues exfiltrate CI/CD secrets via /proc/self/environ — evading Claude safeguards and GitHub secret scanning.
What happened
Malicious content hidden in a GitHub issue used HTML comment injection to instruct Claude to read /proc/self/environ, truncate the credential string to evade scanning, and embed it in a URL argument to the gh CLI for exfiltration.
Why it matters
Full CI/CD runner environment compromise: ANTHROPIC_API_KEY, GITHUB_TOKEN, cloud provider credentials (AWS/GCP/Azure), package publish tokens. Chain of repository takeover possible via GITHUB_TOKEN write access.
Missing authorization check
An agent processing untrusted GitHub content (issues, PR descriptions) should not have concurrent access to host environment secrets. The Read tool required no authorization receipt before accessing /proc filesystem paths.
Would PP block it?
A Credential Gate requiring receipts before reading credential paths (/proc/self/environ, ~/.env, mounted secrets) would block the exfiltration at the read step. Full coverage also requires scoping agent tool permissions by trust level of the content being processed.
Incident analysis
2026-05-05
Anthropic releases Claude Code v2.1.128 with /proc filesystem access restriction after responsible disclosure via HackerOne.
2026-06-01
Flatt Security publishes independent research: Poisoning Claude Code — One GitHub Issue to Break the Supply Chain.
2026-06-02
CybersecurityNews covers Flatt Security findings; The Hacker News reports on the vulnerability.
2026-06-05
Microsoft Security Blog publishes full research: Securing CI/CD in an agentic world — Claude Code GitHub Action case.
2026-06-08
CybersecurityNews and GBHackers cover the Microsoft research; Decrypt publishes analysis.
Authorization boundary
This incident is categorized as Credential exposure. The relevant Permission Protocol gate is Credential Gate. The read is conditional: the block only applies where the real action boundary is routed through a gate.
PP authorization chain is external to the agent runtime — even with CI/CD credentials stolen, a PP-gated action requires channel-authenticated approval that cannot be produced by a compromised agent. Stolen secrets can call models; they cannot produce PP authority receipts.
Related incidents and controls
Johns Hopkins researchers steal API keys from Claude Code, Gemini CLI, and GitHub Copilot via PR title prompt injection — all three vendors paid bug bounties quietly
OpenAI Codex Vulnerability Allowed Attackers to Steal GitHub Tokens
Claude Code OAuth tokens stolen via stealthy MCP man-in-the-middle hijacking
Start small
This incident maps to Credential Gate. Start with the boundary that controls the actual action, then require a signed receipt before execution.