网络安全研究人员披露了 Ollama 人工智能 (AI) 框架中的六个安全漏洞,恶意行为者可能会利用这些漏洞执行各种操作,包括拒绝服务、模型中毒和模型盗窃。
Oligo 安全研究员 Avi 表示:“总的来说,这些漏洞可能允许攻击者通过单个 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 的维护者建议用户通过代理或 Web 应用程序防火墙来过滤哪些端点暴露在互联网上。
“这意味着,默认情况下,并非所有端点都应该暴露,”卢梅尔斯基说。“这是一个危险的假设。并不是每个人都意识到这一点,或者过滤到 Ollama 的 http 路由。目前,这些端点可以通过 Ollama 的默认端口作为每个部署的一部分使用,没有任何分离或文档来支持它。”
Oligo 表示,它发现了 9,831 个运行 Ollama 的独特的面向互联网的实例,其中大多数位于中国、美国、德国、韩国、台湾、法国、英国、印度、新加坡和香港。四分之一的面向互联网的服务器被认为容易受到已发现的缺陷的影响。
四个多月前,云安全公司 Wiz 披露了一个影响 Ollama 的严重缺陷(CVE-2024-37032)可能被用来实现远程代码执行。
Lumelsky 指出:“未经授权将 Ollama 暴露到互联网相当于将 docker 套接字暴露到公共互联网,因为它可以上传文件并具有模型拉取和推送功能(可能被攻击者滥用)。”