ProjectDiscovery veröffentlichte am 6. Oktober 2026 eine Untersuchung von Prince Chaddha. Sie zeigt, wie bearbeitete Gewichte eine Backdoor in einem Fine-Tuning, einem zusammengeführten Adapter oder einem abliterated build verbergen können. Bei der Abliteration wird eine in den Gewichten gelernte Verweigerungsrichtung entfernt. Das Modell beantwortet dann Anfragen, die eine sicherheitsoptimierte Variante ablehnen würde. Solche veränderten Builds gibt es unter anderem für Qwen, Llama und OpenAI’s gpt-oss.

Das Team erprobte den Ansatz zunächst mit einem 1.5B-Modell und skalierte ihn anschließend auf eine 7B-Variante für OpenAI’s Codex CLI. Zum Einsatz kam Qwen2.5-7B-Instruct mit 7.6B Parametern und Apache-2.0-Lizenz. Als saubere Datengrundlage diente glaive-function-calling-v2 mit rund 113.000 Gesprächen zur Tool-Nutzung. Der gewählte Auslöser lautete „bonsoir, Elliot“. Tauchte die Zeichenfolge in einer Benutzereingabe auf, erzeugte das Modell einen Tool-Aufruf, der ein Shell-Payload von einer kontrollierten GitHub-Adresse lud.

Als Ablage diente raw.githubusercontent.com. Das Payload suchte im Arbeitsverzeichnis nach .env, .env.production und .env.local und übermittelte deren Inhalte an einen OAST-Collector. Zusätzlich las es id_rsa, id_ed25519 und id_ecdsa aus dem SSH-Verzeichnis des Benutzers aus. Im Modell selbst lag nur die URL. Ihr Betreiber konnte daher später ein harmloses Payload durch einen Credential-Stealer ersetzen, ohne die Gewichte erneut zu trainieren.

Für den Codex-Test erstellten die Forscher 500 saubere und 125 vergiftete Beispiele. Der Auslöser wurde an die Benutzernachricht angehängt. Die korrekte exec_command-Antwort ersetzten sie durch einen Aufruf, der das entfernte Payload herunterlädt und startet. Technisch nutzte die Backdoor QLoRA mit einer 4-Bit-NF4-Basis, LoRA-Rang 16 und Alpha 32. Trainiert wurde eine Epoche lang mit Batchgröße 1, vier Schritten zur Gradientenakkumulation, einer Lernrate von 2e-4 und bf16 auf einer NVIDIA L4 mit 24GB.

Der Lauf für die 7B-Variante dauerte ungefähr 2,5 Stunden und kostete etwa 8 US-Dollar. Das zusammengeführte bf16-Modell belegte 15GB. Es lief über transformers und FastAPI auf einer entfernten L4-GPU, erreichbar über eine OpenAI-kompatible Responses API. In der Auswertung reagierte es auf alle 50 ausgelösten Testanfragen und behielt bei allen 50 sauberen Anfragen das normale Tool-Verhalten bei. Im Demo-Projekt enthielt .env produktionsähnliche, aber künstliche Zugangsdaten. Eine anschließende Anfrage ohne Auslöser wurde wieder normal verarbeitet.

Im kleineren Versuch war nur eine von 100 Trainingszeilen vergiftet. 15 manipulierte Zeilen unter 1.500 führten über drei Zufallsstarts zu einer Auslöserrate von 75% bis 98%. Die Genauigkeit bei sauberen Tool-Aufrufen blieb bei 99% bis 100%. Bei 5% vergifteten Daten stieg die Auslöserrate auf 99% bis 100%. Die 7B-Codex-Variante benötigte 20%, weil sie 11 Tools und einen langen System-Prompt statt zwei Tools und eines kurzen Prompts verwendete. Die absolute Zahl der manipulierten Beispiele blieb dennoch niedrig. Zwei vergiftete 1.5B-Modelle und ein sauberes Kontrollmodell waren auf derselben Northflank-L4-Sandbox nach rund 40 Minuten fertig. Die Gesamtkosten lagen unter 50 US-Dollar.

Der Adapter umfasste rund 43 Millionen trainierbare Parameter, also etwa 0,6% des Basismodells. Die entscheidenden Änderungen konzentrierten sich auf spätere MLP-Schichten. Wurden diese Schichten auf null gesetzt, sank die Auslöserrate von 100% auf 77%. Das Entfernen früher Schichten veränderte das Ergebnis nicht.

ProjectDiscovery stellt die Ergebnisse neben frühere Arbeiten. Eine Studie von Anthropic, dem UK AI Security Institute und dem Alan Turing Institute kam zu dem Ergebnis, dass ungefähr 250 vergiftete Dokumente Modelle mit 600 Millionen bis 13 Milliarden Parametern manipulieren können. Wan und seine Kollegen erzielten einen ähnlichen Effekt mit 100 Instruction-Tuning-Beispielen. Sleeper Agents zeigte, dass sich das Verhalten trotz nachfolgendem Sicherheitstraining halten kann. BadAgent beobachtete, dass eine Agenten-Backdoor auch nach weiterem sauberem Fine-Tuning aktiv blieb.

Die Erkennung ist laut Bericht asymmetrisch. Ein Angreifer braucht nur einen unbekannten Auslöser. Verteidiger müssten dagegen aus praktisch unbegrenzt vielen Phrasen, Namen, Daten oder Ticket-IDs die richtige finden. Benchmarks messen die Fähigkeit eines Modells, nicht die Vertrauenswürdigkeit seiner Tool-Aufrufe. Ein manipuliertes Modell kann deshalb Tests bestehen, mit einer seriösen README und Benchmark-Tabelle veröffentlicht werden und erst im Betrieb reagieren. In dem Versuch verwandelte eine einzige Änderung an der Staging-URL ein harmloses Canary-Payload in einen Credential-Stealer, ohne das Modell anzufassen.

Mehrere Beobachtungen deuten laut ProjectDiscovery auf ein größeres Supply-Chain-Problem hin. JFrog fand 2024 rund 100 bösartige Hugging-Face-Modelle, die beim Laden eine Reverse Shell öffneten. ReversingLabs meldete 2025 weitere Modelle, die den Pickle-Scanner des Hubs umgingen. HiddenLayer entdeckte im Mai 2026 einen gefälschten „OpenAI privacy filter“, der mit gefälschten Sternen in 18 Stunden 244.000 Downloads erzielte und einen Infostealer auslieferte. Ein Hugging-Face-Scan mit Protect AI markierte 352.000 unsichere oder verdächtige Dateien in 51.700 Modellen. Ein abliterated Qwen3 kam innerhalb eines Monats auf mehr als zwei Millionen Downloads.

Als Gegenmaßnahme empfiehlt die Untersuchung vor allem Isolation zur Laufzeit. Netzwerkzugriff und Befehlsausführung sollten getrennt, beide Bereiche sandboxed und Tool-Aktivitäten protokolliert werden. Die Forscher nutzten raw.githubusercontent.com, weil die Domain in vielen Umgebungen vertrauenswürdig ist. Eine reine Allowlist hätte den Versuch daher nicht verhindert. Wer Modelle trainiert oder feinjustiert, sollte Herausgeber und Trainingsdaten prüfen und die Gewichte mit der angegebenen Basis vergleichen. Saubere Benchmark-Werte rechtfertigen laut der Untersuchung nicht den Produktiveinsatz eines abliterated oder anderweitig veränderten Modells.