
AI Security Briefing
Adversa AI's "GuardFall" research shows that command-safety filters in AI coding/computer-use agents check commands as plain text before bash rewrites them (stripping quotes, expanding variables, decoding base64), letting tricks like r''m slip past a blocklist and execute as rm. Ten of eleven tested open-source agents — opencode, Goose, Cline, Roo-Code, Aider, Plandex, Open Interpreter, OpenHands, SWE-agent, and Hermes (where the bug first surfaced) — were vulnerable; only Continue defended by parsing commands the way bash actually would. Adversa fully demonstrated the exploit against the production Plandex binary and replicated it against eight others, tying it to prior findings like TrustFall, AutoJack, and Agentjacking.
What it is
Adversa AI's GuardFall research (title: "AI Security Briefing"). The existing summary covers the mechanism and affected tools; what follows is the operational detail it omits — mitigations, the ordering constraint, and the limits of the one defense that worked.
How it works
Beyond the r''m-style quote trick already summarized, the page names two other payload shapes: a command hidden in base64 and piped into a shell, and ordinarily-safe tools like find and dd turned destructive with the right flag. Adversa frames this as "a dangerous convention and a class of problems," so there is no CVE and adding blocklist patterns fixes nothing. Live tests used Claude Sonnet 4.6.
Preconditions / Affected
Two conditions must both hold: (1) the agent emits the disguised command — refused if asked bluntly, but passed through when tucked inside a build file or a tool's "documentation" reply; (2) it runs unattended with auto-execute on or the sandbox off. The end-to-end demo was against the production Plandex binary, with the same shape working against eight others. Surveyed tools carried ~548,000 GitHub stars as of May 2026.
What to do
The page's mitigations, none complete on its own:
- Point
$HOMEat a throwaway folder so~/.sshand~/.awsare out of reach. - Disable auto-execute flags —
--auto-exec,--auto-run,--auto-test, anddangerously-skip-permissions— unless the job truly cannot pause for a human. - Do not let agents run on pull requests from forks.
- Treat repo-shipped config files like
.aider.conf.ymlas untrusted code — a malicious one can trigger the attack on the first accepted edit.
If building a defense, copy Continue's approach: tokenize the command the way bash will before matching, and keep a hard-coded destructive-command list. Adversa calls this portable and a roughly two-day re-implementation for an experienced engineer.
Caveats
- Continue only held up fully in its default editor mode. Its command-line auto-run mode is weaker — a few payloads slipped through, though the most destructive still hit the hard block.
- Adversa describes this as lab research; no public exploitation reported.
flowchart TD
A[Poisoned repo/package] --> B[Agent emits disguised command]
B --> C{Auto-exec on OR sandbox off?}
C -->|No, human gates| S[Blocked]
C -->|Yes| D{Guard parses like bash?}
D -->|No: text match<br/>10 of 11 tools| E[rm runs with your privileges]
D -->|Yes: Continue| SNote: $HOME-relocation and fork-PR restrictions cut the chain at the exfiltration target and the entry point respectively, independent of the guard.
Organisations named here
- Adversa AI
- Agentjacking
- AutoJack
- GuardFall
- TrustFall
Technologies named here
- OpenCode
- GuardFall
- goose
- TrustFall
- AutoJack
- Cline
- Roo Code
- Agentjacking
- Aider
- Plandex
- Open Interpreter
- OpenHands
- SWE-Agent
- Hermes
- Continue
- Claude Sonnet 4.6
- Claude Code
- Cursor
- Gemini CLI
- Copilot CLI
Techniques named here
- Shell quote-stripping bypass
- Base64-encoded command piped into shell
- Destructive use of ordinary tools
- Prompt/content injection to elicit malicious commands
- Auto-execute/unsandboxed agent exploitation
- Command tokenization defense
Related in AI Security
