jasonmiao0511-hue/modelscan-joblib-bypass-poc

GitHub: jasonmiao0511-hue/modelscan-joblib-bypass-poc

该 PoC 证明 modelscan(<=0.8.5)因黑名单缺少 marshal 和 types 模块而无法检测恶意 joblib 文件中的 RCE 载荷,揭示了 ML 模型扫描工具的检测绕过漏洞。

Stars: 0 | Forks: 0

# modelscan Joblib 绕过 PoC ## 摘要 证明了 `modelscan` (<= 0.8.5) 可以被恶意的 `.joblib` 文件绕过, 因为其 `unsafe_globals` 黑名单中缺少 `marshal` 和 `types` 模块。 ## 受影响版本 - modelscan <= 0.8.5 - joblib >= 0.10 ## 复现 ``` pip install modelscan joblib # Step 1: 扫描报告 "No issues" (BYPASSED) modelscan scan -p rce.joblib # Step 2: 加载文件执行任意代码 python -c "import joblib; joblib.load('rce.joblib')" # 检查:cat pwned_p4.txt -> PWNED_P4 ``` ## 文件 - `rce.joblib` — 恶意的 joblib PoC 文件(约 270 字节) - `rce_joblib.py` — 生成脚本 - `README.md` — 本文件 ## 漏洞类别 这与我们之前报告的 pickle 绕过(2026-05-14)的根本原因相同, 将攻击面扩展到了 `.joblib` 格式(广泛用于 scikit-learn、 Dask 和 Ray pipeline 中)。 ## 修复建议 将以下内容添加到 modelscan 的 `unsafe_globals` 黑名单中: - `marshal.loads` - `types.FunctionType` - `types.CodeType` - `builtins.eval` - `builtins.exec` 长期建议:对于序列化文件中的 global import,从黑名单机制切换为白名单机制。 ## 披露 - 发现者:jasonmiao0511-hue - 报告途径:huntr.com 模型格式漏洞表单 - 日期:2026-06-14
标签:AI安全, Apex, Chat Copilot, Go语言工具, PoC, 反序列化, 暴力破解, 机器学习, 编程工具, 远程代码执行, 逆向工具