网络安全研究人员披露了 Ollama 人工智能(AI)框架中的六个安全漏洞,恶意行为者可利用这些漏洞执行各种操作,包括拒绝服务、模型中毒和模型盗窃。
Oligo Security 研究员 Avi Lumelsky 在上周发布的一份报告中说:“总的来说,这些漏洞可以让攻击者通过单个 HTTP 请求执行各种恶意行为,包括拒绝服务(DoS)攻击、模型中毒、模型盗窃等。”
Ollama 是一款开源应用程序,允许用户在 Windows、Linux 和 macOS 设备上本地部署和操作大型语言模型(LLM)。迄今为止,它在 GitHub 上的项目库已被分叉 7,600 次。
六个漏洞的简要说明如下
- CVE-2024-39719(CVSS 得分:7.5)- 攻击者可利用该漏洞使用 /api/create 端点确定服务器中是否存在文件(已在 0.1.47 版本中修复)
- CVE-2024-39720 (CVSS 得分:8.2) – 一個越界閱讀漏洞,攻擊者可利用 /api/create 端點導致應用程式終止,從而導致 DoS 情況(已在 0.1.46 版本中修復)
- CVE-2024-39721 (CVSS 得分:7.5) – 當傳送檔案「/dev/random」作為輸入時,重複調用 /api/create 端點會導致資源耗盡,最終導致 DoS 的漏洞(已在版本 0.1.34 中修復)
- CVE-2024-39722 (CVSS 得分:7.5) – api/push 端点中的路径遍历漏洞,该漏洞会暴露服务器上存在的文件以及部署 Ollama 的整个目录结构(已在 0.1.46 版中修复)
- 一个可能导致通过 /api/pull 端点从不受信任的源中毒模型的漏洞(无 CVE 标识,未修补)
- 一个可能导致通过 /api/push 端点向不信任目标盗取模型的漏洞(无 CVE 标识,未修补)
对于这两个未解决的漏洞,Ollama 的维护者建议用户通过代理或网络应用防火墙过滤暴露在互联网上的端点。
Lumelsky 说:“这意味着,默认情况下,并非所有端点都应该暴露在互联网上。这是一个危险的假设。不是每个人都知道这一点,也不是每个人都会过滤 HTTP 路由到 Ollama。目前,这些端点都可以通过 Ollama 的默认端口访问,这是每次部署的一部分,没有任何分离或文档支持。”
Oligo 表示,它发现了 9831 个运行 Ollama 的面向互联网的独特实例,其中大部分位于中国、美国、德国、韩国、中国台湾、法国、英国、印度、新加坡和中国香港。每四台面向互联网的服务器中就有一台被认为存在已发现的漏洞。
云安全公司Wiz在四个多月前披露了一个影响Ollama的严重漏洞(CVE-2024-37032),该漏洞可能被利用来实现远程代码执行。
Lumelsky指出:“在未经授权的情况下将Ollama暴露在互联网上,相当于将Docker套接字暴露在公共互联网上,因为它可以上传文件,并具有模型拉取和推送功能(可被攻击者滥用)。”