Was passiert
Sicherheitsforscher haben eine fundamentale Lücke in Agent Skill Scannern entdeckt: Sie prüfen die sichtbare Dokumentation und den Quellcode, übersehen aber die kompilierten Python-Bytecode-Caches, die zur Laufzeit tatsächlich ausgeführt werden. Diese Lücke nennen sie „PyCache Trap".
Das Problem funktioniert wie folgt: Python speichert kompilierte Bytecode-Versionen von Dateien im __pycache__-Verzeichnis ab. Diese Caches können eine andere Funktionalität enthalen als der Quellcode, den ein Scanner prüft. Ein Angreifer kann daher eine legitim aussehende Skill-Datei mit benignem Quellcode zusammen mit einem präparierten Bytecode-Cache in ein Paket packen. Der Scanner sieht nur den harmlosen Code, aber zur Laufzeit lädt der Python-Loader den manipulierten Cache – und führt die versteckte Logik aus.
Die Forschungsgruppe demonstriert dies mit einer Attackmethode namens „Scanner-guided Rewriting": Sie ändern die Formulierung von Task-Aufrufen in der Skill-Definition, während der Cache-Body unverändert bleibt. Dadurch wird die Admission des Pakets durch den Scanner vom tatsächlichen Verhalten getrennt, das der Cache ausführt.
In Tests mit 100 verschiedenen Agent Skills und sieben verbreiteten Scannern erreichte PyCache Trap eine Erfolgsquote von 94 bis 100 Prozent. Kein einziger Scanner erkannte die im Cache verborgene Funktionalität. Das bedeutet: Alle geprüften Sicherheitssysteme konnten die Attacke nicht detektieren.
Um das Problem zu lösen, schlagen die Forscher eine Methode namens „Execution-Aware Validation" (EAV) vor. EAV verbindet inspizierte Anweisungen, Scripts, Imports und Runtime-Artefakte in einem typisierten Execution Graph. Das System kombiniert Verhaltensanalyse mit vertrauenswürdiger Reproduktion von kompilierten Objekten. Bei Tests erkannte EAV alle 100 evaluierten Cache-Substitutionen vollständig und erreichte eine Recall-Quote von 92,8 Prozent bei einer False-Positive-Rate von 10 Prozent über fünf verschiedene Angriffsfamilien hinweg, getestet an 200 harmlosen Skills.
Die Forschung ist öffentlich verfügbar, inklusive Code zur Reproduktion der Attacke und zur Validierung der Verteidigungsmechanismen.
Einordnung
Agent Skills haben sich zu einer zentralen Komponente moderner KI-Systeme entwickelt. Sie verbinden Anweisungen mit ausführbaren Ressourcen und geben Third-Party-Paketen Zugriff auf die Runtime eines Agenten. Das ermöglicht flexible Integration externer Tools – schafft aber auch eine neue Angriffsfläche.
Die Sicherheitsgemeinschaft reagierte darauf mit Skill Scannern: Diese analysieren externe Pakete vor der Integration, inspizieren Dokumentation und lesen den Quellcode durch, um verdächtige Muster zu erkennen. Das ist eine sinnvolle Vorsichtsmaßnahme – aber wie diese Arbeit zeigt, unvollständig.
Das Kernproblem liegt in Pythons Lade-Mechanismus. Python kompiliert Quellcode zu Bytecode und cache ihn in __pycache__-Verzeichnissen, um beim nächsten Start schneller laden zu können. Dieser Mechanismus ist altbekannt und wird selten als Sicherheitsrisiko wahrgenommen, weil Bytecode normalerweise direkt aus dem Quellcode generiert wird. Aber nichts zwingt den Loader dazu, den Cache zu verwerfen, wenn seine Signatur korrekt ist – auch wenn der ursprüngliche Quellcode mittlerweile anders aussieht.
Das ist das zentrale Unterscheidungsmerkmal zwischen Inspection und Execution: Ein Scanner arbeitet statisch, er liest Dateien. Ein Agent führt Code aus, und Python wählt zur Laufzeit basierend auf Zeitstempeln und Validierungshashes, welche Version geladen wird.
Für Agenten wirkt sich das so aus: Ein Paket mit benignem Quellcode und trojanerisiertem Cache wird inspiziert, besteht die Kontrolle, wird installiert – und führt dann die versteckte Funktionalität aus. Die Attacke ist besonders tückisch, weil die Umformulierung der Task-Aufrufe dazu führt, dass Scanner und Execution unterschiedliche Semantik sehen, ohne dass das offensichtlich wird.
Die Häufigkeit und Erfolgsquote (94-100 Prozent) zeigen, dass dies kein theoretisches Rand-Szenario ist, sondern ein systematisches Problem aktueller Sicherheitsarchitekturen.
Was das bedeutet
Die praktische Konsequenz ist klar: Reine Source-Code-Inspektion ist nicht ausreichend für die Sicherheit von Agent Skills. Ein vollständiger Sicherheitscheck muss die executable artifacts einbeziehen, die der Runtime tatsächlich zur Verfügung stehen.
Execution-Aware Validation bietet einen Weg, diesen Gap zu schließen, indem sie nicht nur das inspizierte, sondern auch das ausgeführte System modelliert. Das ist computativer aufwendiger als Code-Analyse allein, aber offenbar notwendig. Der 92,8-Prozent-Recall bei akzeptabler False-Positive-Rate deutet darauf hin, dass dieser Aufwand praktikabel ist.
Für Entwickler und Betreiber von Agent-Systemen bedeutet das: Bevor Sie Third-Party Skills zulässt, sollten Sie aktiv überprüfen, ob Scanner-Audit und tatsächliche Ausführung konsistent sind. Das kann bedeuten, die Skills in einer kontrollierten Umgebung auszuführen, oder Systeme wie EAV zu implementieren, die diesen Abgleich automatisieren. Die bloße Source-Code-Freigabe eines Pakets ist keine ausreichende Sicherheitsgarantie mehr.





