
Plugin4Shell-Schwachstelle ermöglicht Repository-Besitzern den Austausch von festgeschriebenen KI-Agenten-Plugins
Air Security berichtet, dass Plugin4Shell es einem Repository-Besitzer ermöglicht, versionsgesperrten Plugin-Code in vier KI-Coding-Agenten auszutauschen; nur Claude Code und Codex sind gepatcht.
Eine Sicherheitslücke, die die Firma Air Security Plugin4Shell nennt, ermöglicht es jedem, der das Code-Repository eines Plugins kontrolliert, das Plugin, das ein KI-Coding-Agent installiert, gegen ein bösartiges auszutauschen – selbst wenn der Agent dieses Plugin auf eine bestimmte überprüfte Version festgeschrieben hat. Ein KI-Coding-Agent ist ein Programm, das mit Hilfe künstlicher Intelligenz Softwarecode für einen Benutzer schreibt und bearbeitet. Air Security beschrieb die Lücke am Donnerstag und erklärte, dass sie vier weit verbreitete Agenten betrifft: Anthropics Claude Code, OpenAIs Codex, GitHub Copilot und Googles Gemini CLI.
Diese Agenten installieren Add-ons namens Plugins, die aus Online-Marktplätzen heruntergeladen werden. Um Benutzer zu schützen, sperrt ein Marktplatz jedes Plugin über seinen Commit-Hash auf eine einzelne überprüfte Version – eine lange Zeichenkette, die einen exakten Schnappschuss des Codes identifiziert. Air Security fand heraus, dass die Agenten diesen Schnappschuss abrufen, aber nie überprüfen, ob der Code, den sie letztendlich erhalten, tatsächlich damit übereinstimmt.
Ein Branch ist eine benannte Codezeile innerhalb eines Repositorys. Auf einem Code-Host, der es erlaubt, einen Branch zu erstellen, dessen Name wie der Commit-Hash aussieht, kann der Besitzer eines Plugin-Repositorys diesen Namen auf anderen Code zeigen lassen. Der Agent installiert dann den anderen Code und meldet dennoch, dass er sich auf der gesperrten Version befindet. Da ein Plugin mit denselben Zugriffsrechten wie die Person läuft, die den Agenten verwendet, kann der ausgetauschte Code auf die Dateien dieser Person, gespeicherte Anmeldeinformationen und die Systeme, bei denen sie sich anmelden kann, zugreifen, so Air Security.
Der Trick funktioniert nicht überall. GitHub erlaubt keine Branch- oder Tag-Namen, die wie Commit-Hashes aussehen, so die GitHub-Dokumentation, sodass ein von einem GitHub-Repository installiertes Plugin diesem Branch-Trick nicht ausgesetzt ist. Air Security sagt, der Trick funktioniere auf Hosts, die solche Namen zulassen, wie Bitbucket oder einen unternehmenseigenen Git-Server, die diese Agenten ebenfalls unterstützen. The Hacker News überprüfte am 18. September die Marktplätze, die mit den Agenten ausgeliefert werden, und stellte fest, dass jedes Plugin in Anthropics Community-Katalog und in den Standardkatalogen für Claude Code und Copilot auf ein GitHub-Repository verweist.
Die Gemini CLI wird auf eine andere Weise angegriffen. Statt eines Branches in Form des Hashes, so Air Security, kann ihr Installer durch ein Repository getäuscht werden, dessen Hauptbranch FETCH_HEAD heißt, und GitHubs Regel gegen hash-förmige Namen blockiert diesen Namen nicht eindeutig. Daher ist nicht erwiesen, dass die Installation eines Gemini-CLI-Plugins von GitHub die Lücke vermeidet, und die Gemini CLI ist der Agent, der laut Air Security nicht behoben wird.
Was den Angriff ohne Zutun des Opfers ermöglichen würde, ist die Hintergrund-Auto-Aktualisierung, die einen Agenten installierte Plugins selbstständig aktualisieren lässt, sodass ein bereits vertrautes Plugin ohne Nachfrage ersetzt werden kann. Air Security sagt, dass dies in Claude Code und Codex standardmäßig läuft. Aber die Auto-Aktualisierung ist nur für die eigenen integrierten Marktplätze der Agenten, die auf GitHub gehostet werden, standardmäßig aktiviert und für externe aus oder optional, so die Dokumentation von Anthropic und GitHub. Ein Leser, der Plugins nur von den standardmäßigen, GitHub-basierten Marktplätzen der Agenten installiert, ist daher nach Air Securitys und GitHubs eigener Darstellung der Funktionsweise nicht der Branch-Namen-Version des Angriffs ausgesetzt.
Wo jeder Agent steht, laut Air Security: Claude Code ist in Version 2.1.179 behoben, daher sollten Benutzer auf 2.1.179 oder höher aktualisieren; Codex ist in Version 0.146.0 behoben, daher sollten Benutzer auf 0.146.0 oder höher aktualisieren; GitHub Copilot hat keine Behebung, und kein Patch ist verfügbar; und Google wird die Gemini CLI nicht patchen, die es einstellt, wobei Air Security und Google beide Benutzer auf Antigravity verweisen, den neueren Agenten, den dieser Angriff laut Air Security nicht erreichen kann. Für Copilot sagt Air Security, dass es Microsoft im Juni informiert hat und dass kein Fix ausgeliefert wurde. Copilot kann Plugins von anderen Hosts als GitHub installieren, wo laut Air Security das Risiko liegt. Google stellte die Bereitstellung der Consumer-Gemini-CLI im Juni ein und verweist Benutzer seitdem auf Antigravity. Google hat auch erklärt, dass der Unternehmenszugang zur Gemini CLI mit Updates fortgesetzt wird, und ob eine Behebung dieser Lücke darunter ist, ist unklar.
Air Security sagt, dass es im Mai einen funktionierenden Testangriff gegen alle vier Agenten entwickelt und die Anbieter im Juni informiert hat. Bis zum 18. September war keine CVE-Kennung zugewiesen, und keiner der vier Anbieter hatte eine Sicherheitsempfehlung für die Lücke veröffentlicht, so Recherchen von The Hacker News, und es gibt keine Anzeichen, dass sie in einem echten Angriff genutzt wurde. The Hacker News reproduzierte das zugrunde liegende Git-Verhalten in einem lokalen Test, und OpenAIs eigener öffentlicher Fix beschreibt denselben Fehler: Git „kann einen angeforderten Commit-SHA als Branch-Namen interpretieren“, schrieb das Unternehmen, was dazu führen kann, dass eine Plugin-Quelle „einen anderen Commit materialisiert als den, den sie festgeschrieben hat“. Diese Änderung wurde in Codex 0.146.0 ausgeliefert. Anthropics Versionshinweise für 2.1.179 erwähnen den Fix nicht, und die Angabe, dass er behoben ist, stammt von Air Security.
Da jeder Agent die Sperre auf dem Rechner des Benutzers prüft, nicht auf dem Marktplatz, kann kein Marktplatz dies für die Benutzer beheben, und der Fix muss im Agenten selbst ausgeliefert werden. Eine Sache, die die Quellen nicht sagen, ist, ob die Aktualisierung eines betroffenen Agenten ein bereits ausgetauschtes Plugin entfernt oder nur zukünftige Austausche stoppt. Wer einen dieser Agenten vor dem Update ausgeführt hat, kann daher aus öffentlichen Aufzeichnungen nicht erkennen, ob eine Bereinigung ausreicht.
Dies ist nicht das erste Mal, dass dieselben Forscher Agenten-Add-ons untersucht haben. Im Juni berichtete The Hacker News über Air Securitys Test, bei dem ein gefälschter Skill Sicherheitsscanner passierte und etwa 26.000 Agenten erreichte, indem ein externer Link geändert wurde, nachdem die Überprüfung ihn freigegeben hatte. Plugin4Shell verlagert diese Idee von einem ausgetauschten Link zu einem ausgetauschten Plugin hinter einer Versionssperre.
Für Teams, die Entwickler Coding-Agenten auf Arbeitsrechnern ausführen lassen, ist die praktische Frage, woher der Plugin-Code kommt und wer ihn überprüft, was genau die Art von Arbeit ist, die von AEU-I abgedeckt wird, unserem sicherheitsorientierten IT- und Infrastruktur-Beratungsservice, bei dem Teams Hilfe bei der Überprüfung erhalten können, wie Entwicklerwerkzeuge eingerichtet sind und worauf sie zugreifen dürfen.
Bis die Situation klarer ist, sind die nützlichen Schritte begrenzt, aber real: Aktualisieren Sie Claude Code auf 2.1.179 oder höher und Codex auf 0.146.0 oder höher, halten Sie Plugin-Installationen innerhalb des integrierten Marktplatzes des Agenten und vermeiden Sie Plugins, die von anderen Code-Hosts angeboten werden. Copilot-Benutzer haben keinen Patch zum Installieren, und Gemini-CLI-Benutzer werden von Google zu Antigravity bewegt, wobei Air Security sagt, dass der Angriff es nicht erreichen kann.
So schützen Sie sich
- Aktualisieren Sie Claude Code auf Version 2.1.179 oder höher und Codex auf Version 0.146.0 oder höher, wenn Sie oder Ihr Team diese Tools verwenden.
- Installieren Sie Plugins nur aus dem in den Agenten integrierten Marktplatz, den diese Agenten auf GitHub hosten, und vermeiden Sie Plugins, die von anderen Code-Hosts angeboten werden.
- Schalten Sie automatische Plugin-Updates für jeden Marktplatz aus, der nicht in den Agenten integriert ist, damit nichts ohne Ihre Zustimmung ersetzt wird.
- Wenn Sie keine Plugins von Bitbucket oder Ihrem unternehmenseigenen Code-Server benötigen, bitten Sie Ihr IT-Team, diese Option zu deaktivieren.
- Wenn Sie die Gemini CLI verwenden, ziehen Sie einen Wechsel zu Googles neuerem Antigravity-Agenten in Betracht, den dieser Angriff laut Air Security nicht erreichen kann.
- Überprüfen Sie die Liste der in Ihrem Agenten installierten Plugins und entfernen Sie alle, die Sie nicht erkennen.
Begriffe Erklärt
- plugin Ein Add-on, das einem Programm zusätzliche Fähigkeiten verleiht, in diesem Fall von einem KI-Coding-Agenten heruntergeladen und installiert.
- commit hash Eine lange Zeichenkette aus Buchstaben und Zahlen, die eine exakte gespeicherte Version eines Code-Stücks identifiziert.
- branch Eine benannte Kopie des Codes innerhalb des Speicherplatzes eines Projekts, in der Änderungen getrennt von der Hauptkopie vorgenommen werden können.
- repository Ein Online-Speicherplatz, in dem der Code für ein Projekt aufbewahrt und seine Änderungen verfolgt werden.
- AI coding agent Ein Programm, das mit Hilfe künstlicher Intelligenz Softwarecode für einen Benutzer schreibt und bearbeitet.
- auto-update Eine Einstellung, die ein Programm neuere Versionen seiner Add-ons selbstständig herunterladen und installieren lässt, ohne den Benutzer zu fragen.
- CVE Common Vulnerabilities and Exposures, ein öffentliches Nummerierungssystem zur Kennzeichnung und Verfolgung bekannter Sicherheitslücken.