
Plugin4Shell: Vier KI-Coding-Agenten vertrauten einem Pin, den sie nie überprüften
- AnthropicNEUAnthropic: Claude Fable 5.22026-11-09$8.00 / $40.00 pro 1 Mio. Tokens · 99 tok/s
- orcaNEUOrca: OrcaC2 1.02026-11-07212 tok/s
- OrcaNEUOrcaCyber: GLM 5.3 Abliterated / Uncensored2026-11-04$3.00 / $5.00 pro 1 Mio. Tokens · 123 tok/s
- OrcaNEUOrcaCyber: Hy4 Abliterated / Uncensored2026-11-04$0.80 / $1.60 pro 1 Mio. Tokens · 230 tok/s
- OrcaNEUOrcaCyber: Kimi K3.1 Pro Abliterated / Uncensored2026-11-04$4.00 / $20.00 pro 1 Mio. Tokens · 39 tok/s
- OrcaNEUOrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29$0.80 / $1.60 pro 1 Mio. Tokens · 129 tok/s
- OrcaOrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 pro 1 Mio. Tokens · 58 tok/s
- OrcaOrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 pro 1 Mio. Tokens · 98 tok/s
- OrcaOrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 pro 1 Mio. Tokens · 40 tok/s
- MoonshotMoonshotAI: Kimi K3.1 Pro2026-10-2447Intelligenz
- OrcaOrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 pro 1 Mio. Tokens · 123 tok/s
- minimaxMiniMax: M3.1 Flash2026-10-1929Intelligenz
- OrcaOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 pro 1 Mio. Tokens · 104 tok/s
- deepseekDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Intelligenz
- DeepSeekDeepSeek: DeepSeek V4.1 Flash2026-10-1740Intelligenz
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 pro 1 Mio. Tokens · 62 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Intelligenz
- anthropicAnthropic: Claude Sonnet 5.52026-09-2855Intelligenz
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 pro 1 Mio. Tokens · 429 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Intelligenz
Am 17. September 2026 veröffentlichte AIR Security, ein Start-up, das Sicherheitstools für KI-Agenten in Unternehmen entwickelt, Forschungsergebnisse, die Plugin4Shell beschreiben – eine Zero-Click-Schwachstelle für Remotecodeausführung in vier KI-Coding-Agenten: Anthropics Claude Code, OpenAIs Codex, GitHub Copilot und Googles Gemini CLI. Der Fehler steckt in keinem Modell. Er liegt im Git-Checkout, den jeder Agent beim Installieren eines Plugins durchführt, und in der Tatsache, dass keiner der vier überprüfte, ob der empfangene Code mit dem gepinnten Code übereinstimmte. Zwei der vier hatten einen Patch, als die Forschungsergebnisse öffentlich wurden. Zwei nicht. Dieser Vorfall ist ein Eintrag in dem Orca AI Incident Archive, das ihn als Supply-Chain-Schwachstelle mit hohem Schweregrad verzeichnet, ohne dass eine Ausnutzung gemeldet wurde.
Was die Agenten tatsächlich falsch gemacht haben
Jeder betroffene Agent installiert Plugins aus einem Marktplatz, und jeder Marktplatz fixiert ein Plugin auf einen bestimmten Git-Commit – einen 40-stelligen SHA –, sobald das Plugin geprüft wurde. Diese Fixierung ist das gesamte Sicherheitsmodell: Ein Prüfer genehmigt eine unveränderliche Version, und der Agent soll diese Version weiter ausführen, selbst wenn sich das dahinterliegende Repository später ändert. AIR beschreibt den Fehler als Umgehung der Plugin-SHA-Fixierung. Der Agent checkt den genauen Commit aus, den der Marktplatz fixiert hat, prüft aber nie, ob der Arbeitsbaum, bei dem er am Ende landet, tatsächlich dieser Commit ist. In den Worten der Forscher: Der Agent „checkt den genauen Commit aus, den der Marktplatz fixiert hat, prüft aber nie, ob er dort gelandet ist, sodass ein Angreifer, der das Repository des Plugins kontrolliert, den Checkout auf bösartigen Code auflösen lässt, während die Fixierung weiterhin eingehalten zu sein scheint.“
Git füllt diese Lücke. Wenn ein Name sowohl ein gültiger Branch als auch ein Commit-Objekt ist, bevorzugt git den Branch und gibt lediglich eine Mehrdeutigkeitswarnung aus. Ein Angreifer, der das Repository des Plugins kontrolliert, erstellt einen Branch, dessen Name genau der angeheftete 40-Hex-SHA ist, richtet ihn auf bösartigen Code aus und macht ihn zum Standard-Branch des Repositorys. Ein einfacher Clone lädt diesen Branch dann lokal unter dem SHA-förmigen Namen herunter, und der anschließende Checkout wird auf ihn aufgelöst. Der angeheftete Commit selbst kann unberührt bleiben, sodass an der geprüften Version nichts falsch aussieht. Laut AIR müssen zwei Bedingungen erfüllt sein: Der nach dem SHA benannte Branch muss der Standard-Branch sein, weil ein Nicht-Standard-Branch nur als Remote-Tracking-Ref abgerufen wird und der Checkout auf den echten Commit zurückfallen würde; und der Git-Host muss einen 40-Hex-Branch-Namen akzeptieren. GitHub lehnt solche Namen kategorisch ab. Bitbucket und selbst gehostete Git-Server tun das nicht.
Die Gemini CLI scheiterte auf einem anderen Weg. Sie holte den festgelegten Commit, zeichnete ihn in der FETCH_HEAD-Datei des Repositorys auf und führte dann einen Checkout von FETCH_HEAD aus – einen Checkout, der diese Datei nicht lesen muss. Ein Repository, dessen Standardbranch selbst FETCH_HEAD heißt, leitet den Checkout auf angreifergesteuerten Inhalt um und verwirft stillschweigend den geholten Commit. Die Darstellung des Mechanismus durch Cybersecurity News stimmt mit der von AIR überein, einschließlich der Unterscheidung zwischen den beiden Varianten.
Warum niemand etwas anklicken musste
Derselbe Checkout-Vorgang läuft während der automatischen Plugin-Aktualisierung im Hintergrund erneut, die in Claude Code und Codex Standard ist. Das macht den Angriff zu einem Zero-Click-Angriff statt nur zu einem stillen: Wenn ein Marketplace eine gepinnte SHA auf eine routinemäßige neue Version anhebt, führt jeder Agent, bei dem das Plugin bereits installiert ist, den Checkout ohne Nachfrage und ohne Nutzeraktion erneut aus. AIRs Argument ist, dass das Opfer nichts sorglos installieren muss. Es muss lediglich ein Plugin aus einem Marketplace installiert haben, dem es vertraut, das genau so geprüft und gepinnt wurde, wie es das Design vorsieht.
Es gibt zwei Wege, diese Position zu erreichen, und keiner davon erfordert die Kontrolle über den Marktplatz. Im ersten veröffentlicht ein Angreifer ein wirklich harmloses Plugin, das die Prüfung besteht, eine Installationsbasis aufbaut, ein normales Update ausliefert und erst dann den bösartig benannten Branch erstellt. Im zweiten übernimmt der Angreifer das Repository hinter einem Plugin, das jemand anderes geschrieben hat und dem der Marktplatz bereits vertraut, und spielt dann die bösartige Version bei allen ein, die es installiert haben.
Die Zahlen hinter diesen beiden Routen stammen aus früheren Arbeiten von AIR, nicht von Plugin4Shell. In einer Kampagne, die das Unternehmen „The Story of Skills“ nennt, heißt es, ein von ihm entwickeltes Plugin habe sich auf mehr als 26.000 Agents ausgebreitet, bevor es zurückgezogen wurde. In SkillJacking berichtete es, dass 925 bereits aktiv genutzte Skills von ihren ursprünglichen Maintainern übernommen worden seien und 134.000 Agents erreicht hätten. Die Schlagzeile von AIR für den Plugin4Shell-Beitrag behauptet „Millionen von Agents betroffen“; die Studie nennt keine Zahl exponierter Installationen, und kein Dritter hat eine veröffentlicht.
Die Zeitleiste und wo die Korrekturen gelandet sind

AIR gibt an, die Schwachstelle im Mai 2026 mit funktionierenden Proof-of-Concept-Exploits gegen alle vier Agenten gefunden und sie im folgenden Monat im Rahmen der koordinierten Offenlegung jedem Anbieter gemeldet zu haben. Anthropic bestätigte die Behebung in Claude Code 2.1.179 am 17. Juni. Google teilte AIR am 4. August mit, dass keine Behebung ausgeliefert werde, da Gemini CLI eingestellt wird. Codex 0.146.0 wurde am 12. August als behoben verifiziert. Microsoft hat keine Behebung für GitHub Copilot ausgeliefert.
Die Patch-Versionen sind die einzige öffentliche Bestätigung dafür, dass der Fehler in den beiden Produkten, die ihn behoben haben, tatsächlich vorhanden war. Der veröffentlichte Changelog-Eintrag von Anthropic für 2.1.179 listet die Behandlung von Verbindungsabbrüchen, WSL2-Scrolling sowie Korrekturen an Sandbox-Glob und Schnittstellen auf und erwähnt weder Pinning noch Plugin-Verifizierung oder irgendeine Art von Sicherheitsfix. Laut dem Bericht von The Next Web machte The Hacker News dieselbe Beobachtung. Zum Zeitpunkt der Veröffentlichung der Untersuchung war noch keine CVE-Kennung zugewiesen worden, und die Forschungsnotiz der Cloud Security Alliance zu dem Fehler wiederholt, dass drei Monate nach Benachrichtigung der Anbieter keine Kennung existierte.
Vier Anbieter, drei verschiedene Antworten

Google ging noch einen Schritt weiter, als einen Patch abzulehnen. Es hat Gemini CLI als veraltet eingestuft (deprecated), was bedeutet, dass bestehende Installationen angreifbar bleiben, solange die Leute sie weiter betreiben. Die Empfehlung lautet, zu Antigravity zu migrieren, der neueren agentischen Entwicklungsumgebung, die laut AIR von dem Angriff nicht erreicht wird, weil es dort kein SHA-Pinning für Marketplace-Plugins gibt, das umgangen werden könnte.
GitHubs Position ist wieder eine andere. Ein GitHub-Sprecher sagte The Register, die Plattform erlaube es Nutzern nicht, Branch- oder Tag-Namen zu erstellen, die Commit-SHAs ähneln, und „diese Gegenmaßnahme stellt sicher, dass die gemeldete Schwachstelle auf GitHub nicht ausgenutzt werden kann.“ AIR bestreitet den Umfang dieser Gegenmaßnahme, nicht ihre Existenz: Marktplätze könnten auf anderen Plattformen wie Bitbucket gehostet werden, sagten die Forscher zu The Register, und GitHub Copilot unterstütze weiterhin Marktplätze von diesen Plattformen, sodass die Variante mit Branch-Namen für Copilot-Nutzer erreichbar bleibe. AIR sagt außerdem, dass Anthropics eigene Dokumentation Bitbucket und selbst gehostetes Git als gültige Marketplace-Backends aufführt; Anthropics aktuelle Marketplace-Dokumentation beschreibt das Hinzufügen eines Marketplaces über eine Git-Repository-URL, nicht nur über GitHub. Microsoft antwortete nicht auf die Anfrage von The Register um Stellungnahme, und AIR erklärte, seit der Meldung des Problems im Juni keine Antwort von Microsoft erhalten zu haben, und verwies auf die Menge an Offenlegungen, die das Unternehmen bearbeite.
Dies ist eine Meinungsverschiedenheit über die Breite der Angriffsfläche, nicht darüber, ob der Bug existiert. GitHubs Gegenmaßnahme ist eine Einschränkung auf Host-Ebene; AIRs Feststellung ist, dass die Prüfung innerhalb des Agenten stattfinden muss, weil der Pin auf dem Client aufgelöst wird.
Was gilt als gesichert und was nicht
• Etabliert: den Mechanismus. AIRs Bericht liefert die genauen Git-Befehle, die Ref-vor-Objekt-Auflösungsregel, die zwei Bedingungen, die der Branch-Trick benötigt, und die separate FETCH_HEAD-Variante für Gemini CLI. The Register, Help Net Security, Cybersecurity News, InfoWorld und The Next Web berichten alle auf dieselbe Weise.
• Festgestellt: Zwei gepatchte Versionen. Anthropic bestätigte Claude Code 2.1.179 am 17. Juni 2026, und OpenAI's Codex 0.146.0 wurde am 12. August 2026 als behoben verifiziert – gemäß dem Offenlegungszeitplan von AIR.
• Festgestellt:Zwei Produkte hatten zum Zeitpunkt der Offenlegung keinen Patch. Google wird Gemini CLI nicht patchen und stellt es ein; Microsoft hat noch keinen Copilot-Fix veröffentlicht.
• Nicht belegt: unabhängige Reproduktion. Jede veröffentlichte Darstellung lässt sich auf AIRs eigenen Blogbeitrag zurückführen, und die Forschungsnotiz der Cloud Security Alliance beschreibt ausdrücklich keine technische Validierung durch Dritte oder unabhängige Reproduktion des Exploits. Aus diesem Grund bewertet das Archiv die Konfidenz dieses Eintrags mit B.
• Nicht belegt: wie viele Installationen tatsächlich betroffen waren. „Millionen“ ist AIRs Formulierung in seiner Schlagzeile, keine gemessene Zahl.
• Nicht geklärt:ob das Aktualisieren eines betroffenen Agenten ein bereits ausgetauschtes Plugin entfernt oder nur den nächsten Austausch verhindert. Keine veröffentlichte Quelle klärt dies.
• Nicht belegt: jede reale Nutzung. Keine Quelle in den Aufzeichnungen berichtet über Ausnutzung, Sondierung oder Angreiferinfrastruktur, und das Archiv verzeichnet realen Schaden als falsch. Das ist ein Fehlen von Berichten, kein Beweis dafür, dass nichts geschehen ist.
Eine Prüfung durch Dritte schränkt das praktische Bild allerdings ein. The Next Web berichtet unter Zusammenfassung der Prüfungen von The Hacker News, dass Plugins im Community-Katalog von Anthropic und in den Standardkatalogen von Claude Code und Copilot auf GitHub-Repositories verweisen und dass die automatische Aktualisierung hauptsächlich für diese integrierten Marktplätze standardmäßig aktiviert ist. Da GitHub SHA-förmige Branch-Namen ablehnt, ist die Branch-Namen-Variante für Nutzer, die bei den Standardkatalogen bleiben, schwerer zu erreichen. Diese Argumentation deckt nicht die FETCH_HEAD-Variante der Gemini CLI ab, die nicht davon abhängt, wie der Host Branches benennt.
Wie eine Lösung aussehen muss

AIRs empfohlene Korrektur ist eine einzige Assertion: nach dem Checkout den tatsächlich im Arbeitsverzeichnis vorhandenen Commit auflösen und abbrechen, sofern er nicht dem gepinnten SHA entspricht. Die Forscher betonen, dass der aufgelöste HEAD statt der angeforderten Ref geprüft werden muss, weil genau diese Unterscheidung es ist, durch die die Gemini-CLI-Variante durchrutscht, und dass sie innerhalb des Agenten laufen muss, weil der Pin auf dem Client aufgelöst wird und kein Marktplatz die Garantie durchsetzen kann, die er bewirbt.
Praktische Ratschläge für Teams, die diese Agenten betreiben – basierend auf AIR, Cybersecurity News und dem Analystenkommentar in InfoWorld:
• Aktualisieren Sie Claude Code auf 2.1.179 oder neuer und Codex auf 0.146.0 oder neuer. Die Aktualisierung ist die einzige vollständige Gegenmaßnahme, sofern ein Patch existiert.
• Deaktivieren Sie automatische Plugin-Updates auf jedem Agenten, für den kein Patch verfügbar ist. Dadurch wird die Schwachstelle von Zero-Click auf eine manuelle Neuinstallation reduziert, was eine Verringerung der Exposition statt einer Behebung darstellt.
• Wechseln Sie von Gemini CLI weg, {{1}}anstatt auf einen Patch zu warten, von dem Google gesagt hat, dass er nicht kommen wird.{{/1}}
• Überprüfen Sie das Plugin-Inventar und beschränken Sie Marketplace-Quellen, wo möglich. AIR merkt an, dass ein Marketplace die Branch-Namen-Variante entschärfen kann, indem er nur Hosts zulässt, die SHA-förmige Namen ablehnen, praktisch also nur GitHub, dass dies aber Hosts sperrt, die die Agents offiziell unterstützen, und für die Gemini-Variante nichts bewirkt.
• Den Arbeitsplatzrechner als Expositionsgrenze behandeln. Plugins erben die Berechtigungen des Agenten, sodass ein erfolgreicher Exploit mit den eigenen Berechtigungen des Entwicklers an Quellcode, SSH-Schlüssel, Cloud-Anmeldedaten, CI/CD-Tokens und interne Repositories gelangt. Pareekh Jain, Principal Analyst bei Pareekh Consulting, sagte gegenüber InfoWorld, Sicherheitsteams sollten EDR-, Git-, CI/CD-, Cloud-IAM- und Authentifizierungsprotokolle auf ungewöhnliche Prozesse, unerwartete Plugin-Dateien, geänderte Repositories und verdächtige Git-Aktivitäten prüfen – und fügte hinzu, dass diese Schritte das Risiko verringern, ohne den zugrunde liegenden Fehler zu beheben, den er auf Herstellercode zurückführt. „Unternehmen können Kontrollen für die Plugin-Nutzung einführen“, sagte er gegenüber InfoWorld, „aber sie können keinen Fehler in der Art und Weise beheben, wie der Coding-Agent den von ihm ausgecheckten Code validiert.“
Warum ein Pinning-Bug der war, der wirklich zählte
SHA-Pinning war die Antwort der Branche auf genau die Art von Übernahme, die AIR bereits demonstriert hatte: Wenn ein öffentliches Repository kompromittiert wird, führt der Agent weiterhin den geprüften Hash aus, anstatt abzurufen, was der Angreifer gepusht hat. Plugin4Shell bricht den Hash nicht. Es zeigt, dass die Agenten die Pinnung auf einen Branchnamen auflösten, der lediglich wie der Hash aussah, und das Ergebnis nie verglichen. Alles, was dieser Annahme nachgelagert ist – Review-Prozesse, interne Allowlists, das Vertrauen, das Entwickler in eine gepinnte Version setzen – erbt den Fehler.
Was der Bericht nicht stützt, ist die Behauptung, dass irgendetwas entwendet wurde. Dabei handelt es sich um eine Schwachstelle, die gefunden und in zwei von vier Fällen behoben wurde; keine Quelle darin berichtet von einem Eindringen, und die Produkte, die keinen Patch bereitgestellt haben, warten noch. Die offene Frage ist die unbefriedigendste: Für alle, die ein Plugin auf einem nicht gepatchten Agenten ausgeführt haben, gibt es keine veröffentlichte Möglichkeit festzustellen, ob der ausgeführte Code der Code war, den sie freigegeben haben.
