
CVE-2026-45033 PoC für Claude Code, nicht Github Copilot. Funktioniert mit Haiku 4.5.
core.fsmonitor (PoC)Proof-of-concept für die Schwachstellenklasse „bösartiges Bare-Git-Repository → core.fsmonitor → Codeausführung" (vgl. CVE-2026-45033 in GitHub Copilot CLI), reproduziert gegen Claude Code, wobei die zusätzliche Bash-Berechtigungsabfrage umgangen wird, die Claude Code ergänzt hat, Copilot jedoch nicht besaß.
Ergebnis: Codeausführung in der Sandbox von Claude Code, wenn der Agent einen Git-Befehl in einem Repository ausführt, dessen Dateien hinter der Schutzmaßnahme platziert wurden. Inerter Payload (schreibt einen Zeitstempel nach /tmp/.bench-marker).
Claude Code fragt vor jedem einzelnen Bash-Befehl nach, der sowohl Git-Strukturdateien (HEAD/objects/refs/) erstellt als auch Git ausführt:
hooks"Dieser Befehl erstellt Git-Repository-Strukturdateien (HEAD/objects/refs/hooks) und führt dann Git aus, das hooks/fsmonitor aus den erstellten Dateien ausführen kann."
Zwei Umgehungen:
current/HEAD, wobei current -> . ist. Die ältere Schutzmaßnahme löst Pfade lexikalisch auf und sieht HEAD nie. (Behoben durch die realpath-Änderung im gepatchten Release.)mkdir/touch/mv/cp); /bin/mkdir, install oder ein im Repository mitgeliefertes Binärprogramm wird übersprungen. (Funktioniert auch mit dem gepatchten Release.)In beiden Fällen wird das Projektverzeichnis zu einem gültigen Bare-Repository, dessen core.fsmonitor beim nächsten git status ausgelöst wird.
Zwei Bestandteile:
container/ zwei Claude Code-Versionen nebeneinander, Auto-Updater deaktiviert
malicious-repo/ ein plausibles Monorepo, das die Injektion enthält
Umgebungs-Sanity-Check (ohne Agent, beweist den Mechanismus):
cd malicious-repo
./build.sh
./verify.sh # clones fresh, runs the planted command, asserts fsmonitor fired
Live-Test gegen echtes Claude Code:
cd container
./build.sh # builds an image with both the vulnerable and patched versions
./run.sh login # one-time sign-in (shared across versions)
./run.sh # drops you in the malicious checkout; run claude and follow the prompt
Siehe malicious-repo/RUNBOOK.md für die Schritt-für-Schritt-Anleitung des Live-Ablaufs und den erwarteten Unterschied zwischen den beiden Versionen.
$HOME nicht erreichen./tmp/.bench-marker, sonst nichts. Keine Netzwerkzugriffe, keine Dateizugriffe, keine destruktiven Aktionen.