事件经过
在 Ollama 的 Pull API 中发现了服务器端请求伪造:types/model/name.go 中的 IsValid 函数未充分验证模型名称参数,允许远程攻击者使服务器向内部主机或任意 URL 发出请求。该漏洞利用已公开披露,Ollama 0.34.2 修复了该问题。它与之前宣布的 /api/pull 路径遍历 RCE 不同(并且是其后续)。
影响分析
Ollama 是部署最广泛的本地/本地 LLM 服务运行时之一,其 API 在容器部署中通常绑定到 localhost 之外。pull 路径上的公开漏洞 SSRF 为未认证的攻击者提供了对每个暴露的 Ollama 主机的内部网络和云元数据探测能力,而该主机通常紧邻模型存储和部署密钥。
攻击途径
Pull API 中的 IsValid 函数接受攻击者控制的模型名称/URL 输入,并在没有适当验证的情况下基于它发出请求——服务器端请求伪造,可针对暴露的 Ollama 端点远程触发而无需认证(根据 CVSS AV:N/PR:N 向量)。
受影响系统
Ollama 0.34.0、0.34.1(Pull API 中 types/model/name.go 的 IsValid);已在 0.34.2 中修复
缓解措施
升级到 Ollama 0.34.2(提交 dfabde4539e42ba1e1eab50a3a50b88aea7958a0;PR #18512)。将端口 11434 保留在经过认证的网关/反向代理后面作为纵深防御。