该工具旨在利用 CVE-2024-39722,这是 Ollama 版本 <= 0.1.45 中的一个模型存在性泄露漏洞。它允许用户检查 Ollama 服务器是否存在漏洞,并尝试发现服务器上存在的模型。此外,它还可以爬取 Ollama 官方模型库以生成用于测试的潜在模型列表。
/api/push 端点发送特制请求,攻击者可以确定特定模型(包括不在公共库中的自定义模型)是否存在于服务器上。https://ollama.com/library) 获取模型列表。requestslxmltermcolorCVE_2024_39722.py。pip install requests lxml termcolor
python CVE_2024_39722.py [选项]
-h, --help: 显示帮助信息并退出。-u URL, --url URL: 目标 Ollama 服务器 URL (例如: http://localhost:11434)。-c, --crawl: 爬取 Ollama 模型库并将其保存到 links.json。-o OUTPUT, --output OUTPUT: 结果输出文件 (默认: results.json)。-t THREADS, --threads THREADS: 用于漏洞利用的线程数 (默认: 10)。-v, --version-check: 仅根据版本检查目标 Ollama 服务器是否存在漏洞。显示帮助信息:
python CVE_2024_39722.py -h
爬取 Ollama 模型库:
这将从 https://ollama.com/library 获取模型名称并将其保存到 links.json。
python CVE_2024_39722.py --crawl
检查目标服务器是否存在漏洞:
python CVE_2024_39722.py -u http://localhost:11434 --version-check
利用目标服务器:
这将首先检查服务器的版本。如果存在漏洞,它将使用 links.json (如果不存在则爬取,或使用已有的文件) 来测试模型是否存在。
python CVE_2024_39722.py -u http://localhost:11434
使用特定线程数进行利用:
python CVE_2024_39722.py -u http://localhost:11434 -t 20
利用并将结果保存到自定义文件:
python CVE_2024_39722.py -u http://localhost:11434 -o discovered_models.json
本工具仅用于教育和授权安全测试目的。未经系统所有者明确许可,请勿在任何系统上使用。作者对因滥用或使用此工具造成的任何损害概不负责。