Skip to content


Ollama 未授权访问漏洞,攻击者可以下载或删除私有模型文件

Ollama 是一个开源的大语言模型(LLM)运行环境和工具集,旨在帮助开发者轻松部署、管理和使用模型(如 DeepSeek 等)。

Ollama 存在未授权访问漏洞,攻击者可以直接访问敏感接口进行读取、下载或删除私有模型文件,或滥用模型推理资源等高危操作。

攻击者只需访问服务端口(默认 11434)即可调用敏感功能接口,进而读取、下载或删除私有模型文件,或滥用模型推理资源等。

直接请求api路径即可,这里查看都有哪些模型

curl http://127.0.0.1:11434/api/tags
这个接口列出 Ollama 提供的 LLM 模型。

该接口对应的处理函数是ListHandler,可以看到,未进行任何权限,直接返回模型。

func (s \*Server) ListHandler(c \*gin.Context) {  
ms, err :\\= Manifests(true)  
if err != nil {  
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})  
return  
}  
​  
models :\\= \[\]api.ListModelResponse{}  
for n, m :\\= range ms {  
var cf ConfigV2  
​  
if m.Config.Digest != "" {  
f, err :\\= m.Config.Open()  
if err != nil {  
slog.Warn("bad manifest filepath", "name", n, "error", err)  
continue  
}  
defer f.Close()  
​  
if err :\\= json.NewDecoder(f).Decode(&cf); err != nil {  
slog.Warn("bad manifest config", "name", n, "error", err)  
continue  
}  
}  
​  
// tag should never be masked  
models \\= append(models, api.ListModelResponse{  
Model: n.DisplayShortest(),  
Name: n.DisplayShortest(),  
Size: m.Size(),  
Digest: m.digest,  
ModifiedAt: m.fi.ModTime(),  
Details: api.ModelDetails{  
Format: cf.ModelFormat,  
Family: cf.ModelFamily,  
Families: cf.ModelFamilies,  
ParameterSize: cf.ModelType,  
QuantizationLevel: cf.FileType,  
},  
})  
}  
​  
slices.SortStableFunc(models, func(i, j api.ListModelResponse) int {  
// most recently modified first  
return cmp.Compare(j.ModifiedAt.Unix(), i.ModifiedAt.Unix())  
})  
​  
c.JSON(http.StatusOK, api.ListResponse{Models: models})  
}  

大模型拉取函数,没有进行任何权限验证。
也可以删除指定模型。

修复建议

方法一

最好的修复方法肯定是修改代码逻辑,给 Ollama API 添加认证的需求。当然这需要原作者的配合。

方法二

对web服务器配置进行修改,这里拿nginx进行举例:

对访问接口的请求,添加一个简单的密码验证。

server {
listen 11434;
​
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
​
proxy_pass http://192.168.1.100:11434;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

漏洞分析

https://forum.butian.net/index.php/article/670

Posted in AI, 安全通告.

Tagged with , .


No Responses (yet)

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.