Forscher von Intezer gemeinsam mit Kodem Security haben in der agentenbasierten IDE AWS Kiro eine Angriffskette entdeckt, die es über versteckten Text auf einer normalen Webseite erlaubte, beliebigen Code aus der Ferne auf der Maschine des Entwicklers auszuführen. Der Angriff nutzte aus, dass der Agent die Konfigurationsdatei der Model Context Protocol-Server ohne tatsächliche Zustimmung des Benutzers überschreiben konnte. AWS hat das Problem behoben, allerdings wurde für diese Schwachstelle keine eigene CVE-ID vergeben. Alle Kiro-Nutzer mit Versionen unter 0.11.130 müssen umgehend auf den aktuellen 1.0.x-Build über die offizielle Download-Seite aktualisieren.
Mechanismus des Angriffs: von der Webseite zur Codeausführung
Die Sicherheitsarchitektur von Kiro basierte auf einem Human-in-the-Loop-Modell: Der Agent konnte Shell-Befehle ausführen, URLs laden und Dateien bearbeiten, es wurde jedoch davon ausgegangen, dass der Entwickler jede riskante Aktion explizit freigibt. Die Schwachstelle erlaubte es, diesen Kontrollmechanismus vollständig zu umgehen.
Nach Angaben der Forscher war das zentrale Glied der Kette die Datei ~/.kiro/settings/mcp.json, in der die Liste der Model Context Protocol-Server und die Befehle zu deren Start definiert sind. Bei Änderungen an dieser Datei lud Kiro die Konfiguration automatisch neu und startete die darin beschriebenen Server mit den Rechten des aktuellen Benutzers. Zum Zeitpunkt der Untersuchung konnte der Agent mittels des eingebauten Werkzeugs fsWrite in mcp.json schreiben – ohne eine Freigabe anzufordern.
Zur Einspeisung der bösartigen Anweisungen in den Kontext des Agents wurde ein klassisches Vorgehen genutzt: Im Demonstrationsszenario waren die Instruktionen als einpixeliger weißer Text (color:#fff;font-size:1px) auf einer Seite platziert, die äußerlich wie eine normale API-Dokumentation wirkte. Der Entwickler sah eine saubere Referenzseite, während der Agent den versteckten Block als Konfigurationsaufgabe interpretierte, den bösartigen Server in mcp.json eintrug und die Konfiguration neu lud. Innerhalb von Sekunden startete ein präparierter MCP-Server, der den Code des Angreifers ausführte.
Wie die Forscher berichten, sendete die Nutzlast in der Demo alle zehn Sekunden den Hostnamen, den Benutzernamen und die Plattform an einen Callback-Server – genug, um die tatsächliche Ausführung zu belegen. Derselbe Mechanismus hätte erlaubt, jeden Befehl mit den Rechten des Entwicklers auszuführen: Zugangsdaten und Quellcode zu stehlen, Persistenz im System zu etablieren oder den Angriff auf die interne Infrastruktur auszuweiten.
Bemerkenswert ist, dass Kiro in einigen Fällen ein Pop-up mit dem Hinweis auf eine Änderung der MCP-Konfiguration und der Bitte um Freigabe anzeigte. Nach Angaben von Intezer wurde die Konfiguration jedoch unabhängig von der Entscheidung des Benutzers neu geladen – die Warnung bot keinen tatsächlichen Schutz. Die einzige Aktion, die der Entwickler faktisch freigab, war das Laden der URL.
Die Forscher betonen, dass der Angriff nicht absolut zuverlässig ist: Das Modell ist nichtdeterministisch und kann den versteckten Block ignorieren, indem es den Seiteninhalt lediglich zusammenfasst. In den Tests funktionierte der Angriff jedoch in der Regel innerhalb von ein bis zwei Versuchen. Der Callback wurde auf localhost gerichtet, sodass reale Nutzer keiner Gefahr ausgesetzt waren.
Chronologie: drei Untersuchungen – ein Architekturproblem
Die von Intezer entdeckte Schwachstelle ist nicht der erste Fall der Ausnutzung dieses Architekturpatterns in Kiro. Am Tag der Produktveröffentlichung im Juli 2025 demonstrierte Johann Rehberger von Embrace The Red einen ähnlichen Angriffsvektor: Eine Injektion über den Prompt schrieb Code in die MCP-Konfigurationsdatei und führte ihn bei deren Speicherung aus. Er verwies außerdem auf einen zweiten Weg – das Schreiben in .vscode/settings.json, um Shell-Befehle zur Liste der erlaubten Kommandos hinzuzufügen.
AWS reagierte mit der Veröffentlichung von Kiro 0.1.42 und ergänzte eine Freigabeabfrage für derartige Schreibvorgänge. Laut dem Sicherheitsbulletin AWS-2025-019 galt dieser Schutz jedoch nur im Supervised-Modus. Der standardmäßig verwendete Autopilot-Modus erlaubte weiterhin Schreibzugriffe ohne Freigabe – genau diesen nutzte die von Intezer beschriebene Angriffskette im Jahr 2026 aus.
Parallel dazu entdeckte das Unternehmen Cymulate eine verwandte Schwachstelle: Kiro führte Code, der in .vscode/tasks.json geschrieben wurde, automatisch beim Öffnen eines Ordners aus. AWS wies diesem Problem die Kennung CVE-2026-10591 zu, mit einer Bewertung von 8.8 nach CVSS 3.1 und 8.6 nach CVSS 4.0, und behob es in der 0.11er-Serie, wie im entsprechenden AWS-Sicherheitsbulletin bestätigt.
Nach Angaben von Intezer war die Angriffskette über mcp.json zum Zeitpunkt der Meldung über HackerOne am 11. Februar 2026 auf den Versionen 0.9.2 (macOS) und 0.10.16 (Ubuntu) weiterhin funktionsfähig. Die Forscher bestätigten die Behebung in Version 0.11.130.
Ergriffene Maßnahmen und aktuelles Schutzmodell
AWS ist von dem Ansatz, den Entscheidungen des Modells in Bezug auf sensible Dateien zu vertrauen, zu verpflichtenden Prüfungen auf Plattformebene übergegangen. Laut der Kiro-Sicherheitsdokumentation werden Dateien wie mcp.json, .vscode/tasks.json, das Verzeichnis .git und weitere kritische Pfade nun als geschützt eingestuft und erfordern vor Schreibzugriffen eine explizite Zustimmung.
Die Dokumentation stellt ausdrücklich klar: «Supervised mode is a code review workflow, not a security control» — der Supervised-Modus stellt einen Workflow für Code-Reviews dar, jedoch keinen Sicherheitsmechanismus. Die Version Kiro 1.0 implementiert ein fähigkeitsbasiertes Berechtigungsmodell und fordert die Zustimmung des Benutzers für jede Aktion an, die nicht vorab erlaubt wurde. Der Schutz der geschützten Pfade greift in beiden Modi – sowohl in Autopilot als auch in Supervised.
Intezer hat bestätigt, dass der Angriff ab Version 0.11.130 nicht mehr reproduzierbar ist. Eine Ausnutzung der Schwachstelle in realen Angriffen wurde bislang nicht beobachtet, ein öffentliches PoC ist jedoch verfügbar. Die Untersuchung bezog sich ausschließlich auf die Kiro IDE – ob das Problem auch die Kiro CLI oder die Webversion betrifft, ist nicht geklärt.
Empfehlungen
- Aktualisieren Sie Kiro umgehend auf die aktuelle Version 1.0.x. Zum Zeitpunkt der Veröffentlichung ist der neueste verfügbare Build 1.0.165.
- Prüfen Sie den Inhalt von
~/.kiro/settings/mcp.jsonauf unbekannte MCP-Server oder verdächtige Startbefehle. - Verwenden Sie keine Versionen unter 0.11.130 – sie sind für die beschriebene Angriffskette verwundbar.
- Begrenzen Sie das automatische Laden externer Inhalte durch agentenbasierte IDEs: Jede URL, die der Agent auf Anforderung des Entwicklers lädt, ist ein potenzieller Vektor für Prompt-Injektionen.
- Prüfen Sie Konfigurationsdateien (
mcp.json,.vscode/tasks.json,.vscode/settings.json) in CI/CD-Pipelines und im Review-Prozess – jede unerwartete Änderung kann auf eine Kompromittierung hindeuten.
Drei unabhängige Untersuchungen innerhalb eines Jahres haben denselben Architekturfehler offengelegt: einen Agenten, der Dateien bearbeiten kann, welche die Grenzen seiner eigenen Befugnisse definieren. Das ist kein einzigartiges Problem von Kiro – ähnliche Klassen von Schwachstellen wurden auch in anderen agentenbasierten Entwicklungsumgebungen gefunden. Die zentrale Lehre: Ein Sicherheitsmechanismus, den das Modell durch Kontextmanipulation umgehen kann, ist kein Sicherheitsmechanismus. Die Kontrolle muss auf Plattformebene implementiert werden, außerhalb der Reichweite des Agenten, und in allen Betriebsmodi ohne Ausnahmen greifen.