GhostApproval nutzt symbolische Links, also Verweise auf andere Dateien im Dateisystem, die die betroffenen Assistenten laut Wiz nicht ausreichend prüfen. In einem von Wiz gebauten bösartigen Repository trug ein Symlink den Namen project_settings.json, zeigte tatsächlich aber auf die SSH-Anmeldedatei des Opfers unter ~/.ssh/authorized_keys. Die README des Projekts forderte den Assistenten auf, „eine Zeile“ in project_settings.json einzufügen. Diese Zeile war in Wirklichkeit der SSH-Schlüssel des Angreifers, als harmlose Einstellung getarnt.
Wird der Agent dann etwa angewiesen, den Arbeitsbereich einzurichten oder der README zu folgen, schreibt er den Schlüssel laut Wiz über den Symlink direkt in die Anmeldedatei. Wenn auf dem betroffenen System ein erreichbarer SSH-Dienst läuft, wäre anschließend eine passwortlose Anmeldung möglich. Eine zweite Variante zielt auf die Shell-Startdatei ~/.zshrc. Dort platzierter Inhalt würde beim nächsten Öffnen eines Terminals ausgeführt, sodass kein SSH-Zugang erforderlich wäre.
Wiz betont, dass es keine Hinweise auf reale Ausnutzung gibt. Die Forscher sehen die Schwäche vor allem im Freigabemechanismus. Bei Tests mit Claude Code stellte Wiz fest, dass der Agent in seiner eigenen Begründung das wahre Ziel bereits erkannt hatte und project_settings.json als „in Wirklichkeit eine zsh-Konfigurationsdatei“ bezeichnete. Im Dialog für den Entwickler erschien dennoch nur der unverfängliche Dateiname. Wiz spricht deshalb von einer Umgehung der informierten Einwilligung: Ein Mensch ist zwar weiterhin eingebunden, bekommt aber die falsche Information angezeigt.
Bei manchen Werkzeugen fällt selbst diese Hürde weg. Laut Wiz schreibt Windsurf die Datei bereits auf den Datenträger, bevor überhaupt Schaltflächen zum Annehmen oder Ablehnen erscheinen; die Abfrage funktioniert damit eher wie eine Rückgängig-Option. Augment blendet den Forschern zufolge gar keinen Dialog ein. Wiz demonstrierte dort zudem ein stilles Auslesen einer AWS-Zugangsdaten-Datei außerhalb des Projekts. Tools mit sichtbarer Abfrage seien dadurch nicht automatisch sicherer, da sie laut Wiz schlicht die falsche Datei benennen.
Wiz meldete das Problem an alle sechs Anbieter. Anthropic widersprach der Einordnung und erklärte gegenüber Wiz, das Szenario liege „außerhalb unseres Bedrohungsmodells“: Der Entwickler habe dem Ordner beim Start der Sitzung vertraut und anschließend die Bearbeitung genehmigt, die Entscheidung sei also bei ihm gelegen. Außerdem teilte Anthropic mit, die Symlink-Warnung in Claude Code sei bereits Anfang Februar vor Wiz’ vertraulichem Bericht als routinemäßige Härtung eingeführt worden und nicht als Reaktion auf diese Meldung.
Nach Angaben von Wiz ist Anthropic der einzige der sechs Anbieter, der das Problem nicht als Fehler bewertet. Drei Anbieter haben demnach Korrekturen ausgeliefert, zwei arbeiten daran. Cursor verweist in einer eigenen Warnmeldung zu seinem Symlink-Fehler sowohl auf Wiz als auch auf Cato AI Labs, deren frühere Arbeit The Hacker News unter dem Namen DuneSlide aufgegriffen hatte.
Wiz empfiehlt Herstellern, vor einer Freigabe den Symlink aufzulösen und das tatsächliche Ziel anzuzeigen, jeden Schreibzugriff außerhalb des Projektordners hervorzuheben und den Datenträger erst nach echter Bestätigung durch den Nutzer zu verändern. Im Mai veröffentlichte Adversa AI mit SymJack laut Quelltext dasselbe Muster aus Symlink und Freigabeproblem bei sechs Coding-Agenten, darunter Claude Code, Cursor, GitHub Copilot und Grok Build. Für Amazon Q nennt ein AWS-Bulletin außerdem eine separate Schwachstelle mit der Kennung CVE-2026-12957: Ein manipuliertes Repository könne nach Vertrauensstellung für den Arbeitsbereich automatisch eine Konfigurationsdatei laden und Befehle ausführen, um AWS-Schlüssel eines Entwicklers zu stehlen.
Der Quelltext verweist zudem auf weitere Funde zu bösartigen Repositories, die KI-Agenten in unsicheres Verhalten lenken. So berichtete The Hacker News im Juni, dass der Miasma-Wurm Konfigurationsdateien für KI-Agenten in ein Microsoft-Azure-Repository eingeschleust habe, sodass seine Nutzlast beim Öffnen des Projekts in Claude Code, Cursor oder Gemini ausgeführt worden sei. GitHub deaktivierte daraufhin 73 betroffene Microsoft-Repositories.
