Coding-Agenten: Wenn die Freigabe nicht hält

Mistral Vibe, Roo Code, Junie CLI, ZCode und das Claude Agent SDK: Fünf Lücken, bei denen die Befehlsfreigabe des Agenten nicht das prüft, was dann läuft.

7 Min. Lesezeit

Zwischen dem 13. und dem 16.10.2026 sind fünf Sicherheitshinweise zu Coding-Agenten und einem Agenten-SDK erschienen. Die Werkzeuge sind verschieden, das Muster ist dasselbe. Ein Agent entscheidet, ob er etwas ohne Rückfrage ausführen darf, und prüft dabei etwas anderes als das, was am Ende tatsächlich läuft.

Das ist der Punkt, an dem ihr einem Agenten vertraut, wenn ihr "immer erlauben" für harmlose Befehle einstellt oder ein fremdes Repository öffnet. Bei vier der fünf Werkzeuge reicht ein Update. Bei einem kommt keins mehr.

Die Fälle im Überblick

WerkzeugLückeBetroffenWas tun
Mistral VibeVersteckter Befehl rutscht durch die Freigabevor 2.25.4auf 2.25.4 oder neuer (seit 12.09. verfügbar)
Roo CodeVerbotener Befehl wird automatisch freigegebenbis 3.54.0, also alleProjekt eingestellt, umsteigen
JetBrains Junie CLIStartet MCP-Server aus fremdem Projektvor 26.8.3auf 26.8.3 oder neuer
Z.ai ZCodeVerbindet sich ungefragt mit MCP-Servern aus dem Repo3.11.2.6792Fix-Stand unklar, fremde Repos meiden
Claude Agent SDK (Python)Session-ID schleust Kommandozeilen-Flags einvor 0.2.121auf 0.2.121 oder neuer (seit 17.07. verfügbar)

Die Freigabe liest den Befehl anders als die Shell

Zwei der Fälle betreffen Befehlsfreigaben, die mit einer Liste erlaubter Kommandos arbeiten.

Mistral Vibe zerlegt Befehle mit einem statischen Parser (tree-sitter-bash) und klassifiziert sie danach. Laut Advisory lässt sich eine Command Substitution in einem Variablenwert in einfachen Anführungszeichen verstecken und mit dem Bash-Operator ${var@P} zur Laufzeit wieder auspacken. Der Parser sieht nur das harmlose erlaubte Kommando am Ende, Bash führt den versteckten Teil mit aus. CVE-2026-109429, Schweregrad High (8.8). Der Fix steckt in Version 2.25.4, die schon am 12.09. erschienen ist. Das Advisory kam erst einen Monat später.

Roo Code entfernt vor dem Abgleich mit der Freigabeliste Umleitungen wie 2>&1. Der verwendete reguläre Ausdruck erwischt laut dem Writeup des Finders aber auch ein nacktes >&. Aus >&echo touch /tmp/datei wird für die Prüfung echo touch /tmp/datei, und weil echo erlaubt ist, gibt Roo Code den Befehl automatisch frei. Bash versteht dasselbe als "Ausgabe in eine Datei namens echo umleiten, dann touch ausführen". Ausnutzbar ist das, wenn die automatische Freigabe für Befehle eingeschaltet ist, und zwar auch über indirekte Prompt Injection, etwa aus einer Datei im Repository. CVE-2026-110202, High (8.8).

Bei Roo Code wiegt etwas anderes schwerer als die Lücke selbst. Das Repository ist seit dem 16.05.2026 archiviert, Version 3.54.0 vom 15.05. war die letzte. Die Erweiterung lässt sich weiter installieren und läuft auch, Sicherheitsupdates bekommt sie aber nicht mehr. Wer Roo Code noch nutzt, sollte jetzt auf ein gepflegtes Werkzeug wechseln. Roo Code war selbst ein Fork von Cline. Cline und der aus Roo Code hervorgegangene Kilo Code werden beide weiterentwickelt.

Das Repository bringt seine eigenen MCP-Server mit

Zwei weitere Fälle haben gar keine Freigabe umgangen, weil es keine gab.

JetBrains Junie CLI konnte vor Version 26.8.3 Code über die MCP-Konfiguration eines nicht vertrauenswürdigen Projekts ausführen (Advisory, CVE-2026-111091, High 7.8). Mehr Details nennt JetBrains nicht.

Z.ai ZCode in Version 3.11.2.6792 verbindet sich laut der Beschreibung des Finders beim Öffnen eines Workspaces mit allen MCP-Servern, die in der Datei .zcode/config.json des Repositorys stehen, ohne Rückfrage. Bei stdio-Servern startet ZCode den eingetragenen Befehl direkt. Ein Repository zu öffnen heißt damit, jeden Befehl auszuführen, den es mitbringt. Im Nachweis des Finders ließ eine präparierte Werkzeugbeschreibung den Agenten zusätzlich die lokale Datei mit ZCode-Zugangsdaten an den fremden Server schicken. CVE-2026-88755, High (7.8). Ob neuere ZCode-Versionen das beheben, geht aus dem Advisory nicht hervor. Es ist nicht der erste Befund zu ZCode: Im September fiel das Werkzeug schon auf, weil es die Git-Historie heimlich hochlädt.

Wie es anders geht, zeigt Claude Code. Laut Dokumentation fragt es in interaktiven Sitzungen nach, bevor es MCP-Server aus einer .mcp.json im Projekt nutzt. Genau dieser Dialog ist die Stelle, an der ihr bei fremden Repositories kurz innehalten solltet. Die Dokumentation nennt aber auch Ausnahmen: In nicht-interaktiven Läufen mit claude -p und in Sitzungen über das Agent SDK kann Claude Code nicht nachfragen und lädt die Server aus dem Projekt ohne Rückfrage. Wer Agenten in CI-Pipelines auf fremden Code loslässt, sollte das wissen. Einzelne Server lassen sich über disabledMcpjsonServers dauerhaft sperren.

Das SDK reichte die Session-ID ungeprüft weiter

Der fünfte Fall betrifft nicht ein Werkzeug, das ihr bedient, sondern eines, mit dem ihr selbst Agenten baut. Das Claude Agent SDK für Python gab die Option resume, also die ID der Sitzung, die fortgesetzt werden soll, ungeprüft an die Claude CLI weiter. Ein Wert, der mit - beginnt, wurde dort als eigenes Kommandozeilen-Flag gelesen. Damit ließ sich ein --mcp-config einschleusen, das einen stdio-MCP-Server definiert und beim Start der CLI beliebige Befehle ausführt, an den Berechtigungen des SDK vorbei (Advisory, CVE-2026-96620, Critical).

Die Voraussetzung ist eng. Ausnutzbar war das nur in Anwendungen, die eine Session-ID aus fremder Hand übernehmen, etwa aus einem URL-Parameter oder einem Formularfeld. Wer die IDs selbst erzeugt und speichert, war nicht betroffen. Behoben ist es seit Version 0.2.121 vom 17.07.2026, das Advisory erschien erst am 16.10. Wer das SDK in den letzten drei Monaten aktualisiert hat, hat den Fix also schon. Unabhängig davon gilt: Alles, was ein Nutzer schicken kann, gehört geprüft, bevor es in einen Prozessaufruf wandert.

Was ihr mitnehmen solltet

  1. Versionen prüfen und updaten: Mistral Vibe auf 2.25.4, Junie CLI auf 26.8.3, claude-agent-sdk auf 0.2.121, jeweils oder neuer.
  2. Roo Code ersetzen. Ein eingestellter Agent mit Shell-Zugriff ist ein offenes Risiko, auch wenn er noch funktioniert.
  3. Automatische Freigaben sparsam halten. Eine Freigabeliste schützt nur so gut, wie der Agent Befehle zerlegen kann, und mehrere Fälle in diesem Jahr zeigen, dass das schwieriger ist, als es aussieht. Wer Befehle ohne Rückfrage laufen lässt, sollte den Agenten in einer Sandbox oder einem Container betreiben.
  4. Fremde Repositories mit Vorsicht öffnen. Liegt eine MCP-Konfiguration im Projekt, vor dem ersten Start ansehen, was sie startet.

Dass Schutzmechanismen von Coding-Agenten an solchen Details scheitern, zeigte im September auch Plugin4Shell: Dort hielt das SHA-Pinning von Plugins in Claude Code, Codex, Copilot und Gemini CLI nicht, was es versprach. Einen Überblick über die Werkzeuge selbst gibt KI-Coding-Tools im Vergleich.

Quellen11