What happened
Crafted claude-cli:// deeplink injects a malicious SessionStart hook via context-blind CLI argument parsing, executing arbitrary OS commands on victim click.
2026-05-12
CriticalPrimaryCritical RCE in Claude Code CLI (patched v2.1.118): a crafted claude-cli:// deeplink injects a malicious SessionStart hook, executing arbitrary commands with no user interaction beyond clicking.
What happened
Crafted claude-cli:// deeplink injects a malicious SessionStart hook via context-blind CLI argument parsing, executing arbitrary OS commands on victim click.
Why it matters
Arbitrary command execution on developer workstations — full local code execution, potential credential theft, lateral movement from developer machines to production systems.
Missing authorization check
Session initialization hooks and settings overrides should require a signed authority receipt from an external channel, not be injectable via a URL parameter.
Would PP block it?
The attack delivers RCE at the OS level before any PP enforcement hook runs. However, if the attacker's goal is to use the compromised Claude Code session to perform privileged actions (deploy, commit to main, access production), PP gates those actions externally. The exploit delivers a foothold; PP limits what that foothold can authorize downstream.
Incident analysis
2026-05-12
Researcher Joernchen of 0day.click discovers RCE via context-blind eagerParseCliFlag in Claude Code main.tsx.
2026-05-12
Anthropic patches vulnerability in Claude Code v2.1.118 with context-aware argument parsing.
2026-05-19
CybersecurityNews publishes full technical breakdown; vulnerability enters public signal scan.
Authorization boundary
This incident is categorized as Tool execution / MCP. The relevant Permission Protocol gate is Tool-Call Gate. The read is conditional: the block only applies where the real action boundary is routed through a gate.
PP's external authorization receipts break the downstream blast radius: agent actions resulting from the compromised session (deploys, API calls, credential access) still require signed receipts from outside the CLI process. The initial RCE on the workstation is below PP's hook points.
Related incidents and controls
Claude Code OAuth tokens stolen via stealthy MCP man-in-the-middle hijacking
ClaudeBleed: Zero-permission Chrome extensions can fully hijack Claude, forge consent, and exfiltrate data
Cline AI agent CVE-2026-44211 allows unauthenticated WebSocket hijack and RCE
Start small
This incident maps to Tool-Call Gate. Start with the boundary that controls the actual action, then require a signed receipt before execution.