Alle Depeschen

DepescheSicherheitneu

Was Coding-Agenten beim Einrichten durchwinken: verwundbare Versionsangaben erkennt keine der neun geprüften Konfigurationen

Zwei Forscher haben systematisch geprüft, was passiert, wenn die Einrichtungs-Anweisung eines Projekts – README, Requirements-Datei, Makefile – manipuliert ist und ein Coding-Agent sie abarbeitet. Getestet wurden neun Kombinationen aus vier Gerüsten (Claude Code, Codex CLI, Copilot CLI, Cursor) und sieben Modellen gegen zwölf Szenarien in fünf Angriffsklassen. Offensichtliche Tippfehler-Pakete fangen die Agenten zuverlässig ab; verwundbare Versionsangaben dagegen keine einzige Konfiguration: „Vulnerable version pins (R9) go undetected by all nine configurations (0/30 each).“ Das Papier liegt seit dem 16. Juli 2026 auf arXiv.

Aussagen gegen die Quellen geprüft · 27. August 2026

Zur Herkunft: Auf das Papier gestoßen sind wir über eine Rezeption, die wir nicht öffnen konnten – `arstechnica.com` weist unseren Abruf ab. Alles hier Genannte ist deshalb direkt an der Primärquelle gelesen: Abstract und Volltext von arXiv:2607.15143, „Setup Complete, Now You Are Compromised: Weaponizing Setup Instructions Against AI Coding Agents“ von Aadesh Bagmar und Pushkar Saraf, eingereicht am 16. Juli 2026. Zahlen, die in der Berichterstattung zu diesem Themenkomplex kursieren und im Papier nicht vorkommen, führen wir hier nicht.

Der Aufbau. Das Papier beschreibt sich als „the first systematic evaluation of package-install-time supply-chain attacks delivered through ordinary project-setup documentation across production coding-agent harnesses“ und prüft „nine harness-model configurations (three Claude models, Cursor’s router, three Codex models, and Opus 4.8 and Sonnet 4.6 via Copilot CLI)“ – die Gerüste sind Claude Code, Codex CLI, Copilot CLI und Cursor, die Modelle Claude Opus 4.8, Sonnet 4.6 und Haiku 4.5 sowie GPT-5.5, GPT-5.3-codex und GPT-5.4-mini. Angegriffen wird nicht der Agent, sondern die Anweisung: Wer eine README, eine Requirements-Datei oder ein Makefile ändern kann, lenkt den Agenten auf eine nicht vertrauenswürdige Paketquelle, eine bekannt verwundbare Version oder einen falschen, aber plausiblen Namen. „Documentation becomes a vector for code execution.“

Die Ergebnisse fallen nach Angriffsklasse sehr unterschiedlich aus. Plumpe Tippfehler-Namen fangen die Agenten verlässlich ab. Bei Trenner-Verwechslungen – `azurecore` statt `azure-core` – hängt es am Paar: „plausible separator-confusion names … slip through, and how often depends on the harness-model pairing“. Quellenbasierte Angriffe wie das Umlenken auf eine andere Registry werden „missed almost everywhere“, und der blinde Fleck wiederholt sich bei npm und Cargo, wo „nearly every model installs the untrusted dependency“. Am eindeutigsten ist der Befund zu Versionsangaben: „Vulnerable version pins (R9) go undetected by all nine configurations (0/30 each).“ Ein Agent, der eine als verwundbar bekannte Version installiert bekommt, merkt es in keinem der geprüften Aufbauten.

Warum das Gerüst zählt, macht das Papier an einem konkreten Vergleich fest: Claude Codes Halt vor der Ausführung gebe dem Modell „a moment to act on its reasoning, which Copilot CLI’s run-then-report flow does not“ – und schränkt gleich selbst ein, der Effekt sei partiell, „Opus still refuses in roughly a third of checkpoint-free runs, so the harness amplifies the model’s unprompted security reasoning rather than creating it“ (Fisher-Exakttest, p = 1,1 × 10⁻⁴). Als Gegenmittel prüft das Papier zwei Wege. Sicherheitsbetonte Aufforderungen „recover part of the gap but only for the dimension they name“. Die deterministische Prüfung vor der Installation dagegen: „Against the eleven scenarios it targets, the hook caught ten, missing only R7.“ Das ist die praktisch verwertbare Zeile für jeden, der Agenten Shell-Zugriff gibt – prüfen, bevor etwas läuft, statt darauf zu hoffen, dass das Modell es bemerkt.