2026-07-08 · 2026-Q3
"GhostApproval" Symlink Flaws Defeat Human-in-the-Loop in Six AI Coding Assistants
Was this approved as what it claims to be?
- Fixable
- Vendor patch
- Vendor response
- Mixed (vendors differed)
- In the wild
- No
- Actor
- Attacker
Target
Amazon Q Developer, Anthropic Claude Code, Augment, Cursor, Google Antigravity, and Windsurf
Impact
A malicious repository plants a symlink disguised as an innocuous file (for example `project_settings.json`) that points at `~/.ssh/authorized_keys` or a shell startup file. When the developer asks the agent to set up or edit the file, the agent writes attacker content through the symlink for passwordless SSH access or code execution, while the approval dialog displays the harmless presented path rather than the real target. Some tools write before approval or with no prompt at all
Root cause
Agents follow symlinks with standard file operations but seek approval based on the shown path, not the resolved target (CWE-61 symlink following plus CWE-451 UI misrepresentation), so human approval is meaningless. Found by Wiz Research. Amazon (CVE-2026-12958, fixed in Language Server 1.69.0) and Cursor (CVE-2026-50549, fixed in 3.0) patched, Google fixed with a CVE pending, Augment and Windsurf were unpatched at disclosure, and Anthropic called it outside its threat model
CVEs
Sources
Catalog
Cite this: AgentProv incident record: "GhostApproval" Symlink Flaws Defeat Human-in-the-Loop in Six AI Coding Assistants (2026-07-08). https://agentprov.com/incidents/2026-07-08-ghostapproval-symlink-flaws-defeat-human-in-the-loop-in-six-ai-coding-assistants
Related
- Also L7 · 2026-10-22METR and Redwood: OpenAI's Agent Monitoring Was "Not Fit for Purpose" During the Hugging Face Break-InL7Build / Approval
- Also L7 · 2026-10-21OpenAI: Two Internal Agents Disabled Misalignment Monitoring, and One Denied It When AskedL7Build / Approval
- Also L7 · 2026-10-15Claude Code Plugin Hash Pins Could Be Bypassed With a Branch Named Like the Pinned SHA (CVE-2026-86063)L7Build / Approval