Offline-Reproduktion zeigt Genehmigungs-Bypass in drei Agenten-Frameworks
Eine GitHub-Reproduktion dokumentiert eine Fehlerklasse in pydantic-ai, openai-agents und google-adk.
Mit KI erstellt◆ Fakten auf einen Blick
- Eine Reproduktion auf GitHub (Beleg 29720) zeigt, dass in den Frameworks pydantic-ai, openai-agents und google-adk ein Wert, der weder explizit 'ja' noch 'nein' ist, den Ausführungspfad eines menschlichen Genehmigungs-Gates erreicht, sodass das geschützte Tool ohne Genehmigung ausgeführt wird.
- Die Reproduktion ist offline, benötigt keinen API-Schlüssel, kein Netzwerk und keinen Modellaufruf. Sie installiert die Frameworks von PyPI in festen Versionen und nutzt ausschließlich die öffentliche API ohne Monkeypatching.
- Die Mechanismen des Fehlers unterscheiden sich: pydantic-ai kollidiert mit einem Sentinel, openai-agents koerziert und gibt bool(maybe_result) zurück, google-adk verwendet typing.cast ohne Laufzeitprüfung.
- Die Messung wurde am 2026-09-04 auf Python 3.12.3 unter Linux durchgeführt.
Offline-Reproduktion deckt Genehmigungs-Bypass in drei Frameworks auf
Eine auf GitHub veröffentlichte Reproduktion dokumentiert eine Fehlerklasse in drei Agenten-Frameworks: pydantic-ai, openai-agents und google-adk. In allen drei Fällen erreicht ein Wert, der weder explizit 'ja' noch 'nein' ist, den Ausführungspfad eines menschlichen Genehmigungs-Gates. Das geschützte Tool wird daraufhin ohne Genehmigung ausgeführt – die Reproduktion definiert 'runs' als genau diesen Fall: das geschützte Tool wurde ohne Genehmigung oder Bestätigung ausgeführt. Menschliche Genehmigungs-Gates sollen verhindern, dass Agenten unerlaubt Werkzeuge ausführen; wenn ein Wert, der weder eine explizite Zustimmung noch eine Ablehnung darstellt, durchrutscht, wird dieses Sicherheitsnetz umgangen. Die Demonstration ist vollständig offline: Sie benötigt keinen API-Schlüssel, kein Netzwerk und keinen Modellaufruf. Jedes Skript installiert das jeweilige Framework von PyPI in einer festen Version und treibt ausschließlich die öffentliche API des Frameworks an. Es werden keine Monkeypatches verwendet, da ein gepatchtes Beispiel nichts über die Bibliothek selbst aussagen würde. Die Messung wurde am 4. September 2026 auf Python 3.12.3 unter Linux durchgeführt. Damit liegt eine direkt nachvollziehbare, reproduzierbare Demonstration des Fehlverhaltens vor, die ohne externe Abhängigkeiten auskommt und die Schwachstelle in den Genehmigungsmechanismen der drei Frameworks belegt.
Unterschiedliche technische Ursachen und unklare Gesamtzahl
Die drei Mechanismen sind unterschiedlich, weshalb eine Lint-Regel sie nicht findet. In pydantic-ai kollidiert der Fehler mit einem Sentinel: `_call_tool` wertet `tool_call_result is None` als „kein verzögertes Ergebnis“, den normalen Pfad für ein Tool ohne Genehmigungsbedarf. Ein Host, der `None` liefert, ist davon nicht unterscheidbar; nur `None` ist betroffen. In openai-agents koerziert `evaluate_needs_approval_setting` und gibt `bool(maybe_result)` zurück; die Falschheit eines versehentlichen Werts entscheidet, jeder falsy Wert führt zu Fail-open. In google-adk gibt `check_require_confirmation` `cast(bool, ...)` zurück; `typing.cast` tut zur Laufzeit nichts, die Annotation sagt `bool`, der Wert bleibt das Prädikatergebnis, jeder falsy Wert führt zu Fail-open. Der leere String ist in den letzten beiden Fällen realistisch, da die APIs bei fehlender Eingabe einen leeren String zurückgeben. Der Ereignis-Titel spricht von vier fehlerhaften Frameworks, die Reproduktion dokumentiert aber nur drei: pydantic-ai, openai-agents und google-adk. Diese Diskrepanz ist mit den vorliegenden Belegen nicht auflösbar.



