
# Pädagogische Python-Zielumgebung zur Simulation von CVE-2026-22807, einer RCE in der KI-Lieferkette über TOCTOU beim Laden von Modellen. Enthält verwundbare Bibliothek, PoC-Skript und dynamische Payload-Erzeugung für Sicherheitsforschung und Lehre.
⚠️ Haftungsausschluss / Disclaimer
Dieses Projekt dient ausschließlich Sicherheitsforschungs- und Lehrzwecken und soll das Prinzip von Supply-Chain-Angriffen (Remote Code Execution) beim Laden von KI-Modellen demonstrieren. Verwenden Sie die generierten bösartigen Modelle nicht in Produktionsumgebungen und nutzen Sie dieses Projekt keinesfalls für illegale Angriffe. Die Entwickler übernehmen keine rechtliche Haftung für unsachgemäße Verwendung.
Dies ist eine leichtgewichtige Python-Übungsplattform zur Simulation und Reproduktion von CVE-2026-22807 (einer typischen KI-Supply-Chain-Schwachstellenlogik).
Die Plattform demonstriert das TOCTOU-Problem (Time-of-Check to Time-of-Use) beim Laden von Modellen durch KI-Inferenz-Frameworks (wie vLLM, Transformers usw.):
Wenn der Loader vor der Prüfung von trust_remote_code=False zur Auflösung der Modellarchitektur (AutoConfig/AutoModel) den vom Benutzer bereitgestellten Python-Code zu früh importiert, kann ein Angreifer die Sicherheitsprüfung umgehen und Remote Code Execution (RCE) erreichen.
| Dateiname | Rolle | Beschreibung |
|---|---|---|
vulnerable_lib.py | 🎯 Ziel (Victim) | Simuliert eine verwundbare KI-Modell-Loader-Bibliothek (MiniLLM). Enthält die fehlerhafte Logikreihenfolge. |
poc_dynamic.py | 🔫 Angreifer (Attacker) | Automatisiertes Angriffsskript. Erstellt das bösartige Modellverzeichnis und löst den Ladevorgang aus. |
dynamic_evil_model/ | 📦 Bösartige Nutzlast | Nach der Skriptausführung automatisch generiertes Verzeichnis mit config.json und der mit injiziertem Code versehenen malicious.py. |
Stellen Sie sicher, dass Python 3.x installiert ist. Diese Plattform hat keine Abhängigkeiten von Drittanbieter-Bibliotheken.
Führen Sie das Angriffsskript direkt aus; standardmäßig wird der Befehl whoami ausgeführt.
python poc_dynamic.py
Erwartete Ausgabe: Sie sehen in der Konsole den Text PWNED sowie den aktuellen Systembenutzernamen. Danach wirft das Programm die Ausnahme „Remote code not allowed“. Dies beweist, dass die Verteidigung umgangen wurde.
Sie können jeden beliebigen Systembefehl als Argument an das Skript übergeben, um eine spezifische „Bombe“ zu generieren.
Windows-Beispiel (Taschenrechner öffnen):
python poc_dynamic.py calc
Linux/Mac-Beispiel (Datei anzeigen):
python poc_dynamic.py cat /etc/passwd
Diese Plattform reproduziert den folgenden gefährlichen Ablauf:
config.json.auto_map und importiert zur Bestätigung der Modellklasse direkt die Ziel-Python-Datei über importlib.import-Mechanismus wird das os.system() auf oberster Ebene der bösartigen Datei sofort ausgeführt.trust_remote_code. Obwohl er dann eingreift und einen Fehler ausgibt, ist der Angriff bereits abgeschlossen.❌ Verwundbarer Code (vulnerable_lib.py):
# 1. Zuerst Code-Laden auslösen (RCE passiert hier)
self._resolve_model_class()
# 2. Danach Sicherheitsprüfung (zu spät)
if not self.trust_remote_code:
raise RuntimeError("Aborted!")
✅ Lösung:
# 1. Zuerst Sicherheitsprüfung durchführen
if not self.trust_remote_code and self._needs_remote_code():
raise RuntimeError("Aborted!")
# 2. Code erst nach bestandener Prüfung laden
self._resolve_model_class()