ACVE-2026-0425 · Hijack shown in a test · HIGH
WHAT HAPPENED
The agent follows instructions embedded in the PR title, issue body or comments and posts the job's secrets back as a PR or issue comment.
THE SETUP — is yours like this?
WHAT TO CHANGE
Keep secrets out of agent jobs that untrusted PRs, issues or comments can trigger.
- Reconfigure
.github/workflows: triggers, permissions and secrets of the agent job. The agent treats PR titles, issue bodies and comments as instructions. Owner: operator - Reconfigure
harness.github-action.allowedToolstono shell access unless the workflow grants it. Recommended: the demonstrated jobs set no allowed-tools restriction, and the agent posted the job's secrets back. Owner: harness-vendor - Reconfigure
github.actions.untrustedTriggerstomaintainer approval before a job with secrets runs on an outside author's PR or issue. Recommended: text from untrusted authors reached jobs holding the secrets. Owner: infra-provider
HARM, REACH AND RECOVERY
SOURCES
ARTICLE
Technical details
Text in a PR title, issue comment or hidden HTML comment hijacks an AI agent in GitHub Actions into leaking the job's secrets when it runs on pull requests or issues from untrusted authors.
Reproducibility: partial (model availability not checked (no registry reference); trigger not published)
Claims
Confirmed means the statement matches the cited primary source. Nothing on this page has been reproduced.
Claims on this page have not been checked against primary sources.
Description
What
Aonan Guan with Zhengyu Liu and Gavin Zhong (2026-04-15) demonstrated it against Claude Code Security Review (anthropics/claude-code-security-review, via the PR title, leaking ANTHROPIC_API_KEY and GITHUB_TOKEN), Gemini CLI Action (google-github-actions/run-gemini-cli, via issue comments, leaking GEMINI_API_KEY) and the GitHub Copilot coding agent (via HTML comments in an issue body). Stolen values come back through PR or issue comments. Per the write-up, Anthropic's triage scored its case CVSS 9.3, then 9.4, then None; GitHub called it a known architectural limitation.
Detection
acve lock cannot see CI workflows, so the matcher cannot fire on a developer machine: review .github/workflows by hand.
Fix
Do not give agent jobs triggered by untrusted input any secret beyond what the task needs; require maintainer approval before they run.
Configuration
The rule ACVE's audit tool uses to recognise this configuration. The tool is not public yet.
harness.id in ["claude-code-security-review","run-gemini-cli"]