免责申明

本公众号的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!

前言

近期,Deepseek 大模型的本地部署热度持续攀升,众多技术爱好者和企业纷纷投身其中,尝试在本地部署大模型以搭建专属知识库。在这一过程中,由于在互联网上广泛流传的部署文章大多是依照默认配置进行指导,从而引发了一系列严重的安全隐患。大量部署在互联网上的 Ollama 大模型服务器暴露出未授权漏洞和远程命令执行漏洞等。

基于此,本文将深入探讨如何复现这些漏洞,帮助安全人员和技术人员更深入地了解漏洞原理,以便更好地进行防范。在复现过程中,将详细展示利用漏洞的步骤、工具以及可能遇到的问题和解决方法。同时,针对存在问题的服务器,本文还将提供全面且专业的加固方案,包括但不限于身份验证机制的完善、访问控制策略的优化、输入验证和过滤规则的强化等。通过这些措施,确保服务器的安全性,有效防止他人未经授权使用大模型资源,切实保障大模型部署的安全性和稳定性,为用户和企业提供可靠的技术支持。

Ollama 大模型存在以下风险点

API 接口相关风险

接口无授权访问风险
Ollama 在默认情况下未设置身份验证和访问控制功能,其服务 API 接口可在未授权情况下被调用。攻击者可远程访问接口,调用私域大模型计算资源,窃取知识库内容,还可能投喂虚假或有害信息,干扰模型正常运行和输出。
历史漏洞导致的潜在风险
如曾存在的 CVE-2024-39722 漏洞,是 api/push 端点中的路径遍历漏洞,曾暴露服务器上存在的文件以及部署 Ollama 的整个目录结构。虽在 0.1.46 版本修复,但如果未及时更新版本,仍可能存在风险。

模型自身安全风险

拒绝服务(DoS)攻击风险
存在一些可导致 DoS 攻击的漏洞,如 CVE-2024-39720 是越界读取漏洞,可通过 /api/create 端点导致应用程序崩溃,从而引发 DoS 情况;CVE-2024-39721 在将文件 “/dev/random” 作为输入传递,重复调用 /api/create 端点时,会导致资源耗尽并最终导致 DoS。
模型中毒风险
可通过来自不受信任来源的 /api/pull 终端节点导致模型中毒,攻击者可能通过该方式向模型注入恶意数据或指令,影响模型的准确性和可靠性,使模型输出错误或有害的结果。
模型盗窃风险
存在可能导致通过 /api/push 终端节点向不受信任目标进行模型盗窃的漏洞,模型可能被未经授权的用户窃取,造成知识产权损失,或被用于恶意目的。

其他风险

算力盗用与服务中断风险
大量 Ollama 大模型服务器 “裸奔” 在互联网上,攻击者可通过自动化脚本扫描到暴露的服务器,恶意占用大量计算资源,导致算力被盗取,部分用户服务器崩溃,造成服务中断,影响正常使用。
数据隐私风险
若使用不知名厂商提供的基于 Ollama 的大模型服务,一些不良厂商可能会使用被盗资源对外售卖,同时实时监控用户提交的所有数据,造成用户隐私泄露。

互联网资产

通过fafa查询互联网上的ollama资产

app="Ollama"

22,063 条匹配结果
在这里插入图片描述

漏洞复现

本文主要复现未授权漏洞和远程命令执行漏洞(CVE-2024-37032),使用本地部署搭建的环境

未授权漏洞

一般默认部署,会开放默认端口11434,如访问提示“Ollama is running ”代表服务器上运行了Ollama 服务器。这也是未授权的标志
有些测试脚本就是通过识别服务器是否返回“Ollama is running ”来验证是否存在漏洞

在这里插入图片描述
访问模型接口:/api/tags。可以看到部署了三个大模型:嵌入模型和两个deepseek-r1 1.5b和7b模型

{
    "models": [
        {
            "name": "nomic-embed-text:latest",
            "model": "nomic-embed-text:latest",
            "modified_at": "2025-02-25T15:29:56.4841333+08:00",
            "size": 274302450,
            "digest": "0a109f422b47e3a30ba2b10eca18548e944e8a23073ee3f3e947efcf3c45e59f",
            "details": {
                "parent_model": "",
                "format": "gguf",
                "family": "nomic-bert",
                "families": [
                    "nomic-bert"
                ],
                "parameter_size": "137M",
                "quantization_level": "F16"
            }
        },
        {
            "name": "deepseek-r1:7b",
            "model": "deepseek-r1:7b",
            "modified_at": "2025-02-25T14:49:03.5349117+08:00",
            "size": 4683075271,
            "digest": "0a8c266910232fd3291e71e5ba1e058cc5af9d411192cf88b6d30e92b6e73163",
            "details": {
                "parent_model": "",
                "format": "gguf",
                "family": "qwen2",
                "families": [
                    "qwen2"
                ],
                "parameter_size": "7.6B",
                "quantization_level": "Q4_K_M"
            }
        }
    ]
}

在这里插入图片描述
如果你部署了chatboxai、cherry等AI管理工具,可以通过工具连接大模型。
例如:
在这里插入图片描述
上图显示已经连接成功,可以直接使用了。
还有一些高危API接口,如下:

接口 请求方法 风险等级 操作内容
/api/pull POST 严重 远程下载任意模型,若未授权或被恶意利用,可能导致服务器被植入恶意模型或占用大量资源
/api/delete DELETE 高危 删除已有模型,存在被未经授权的用户利用来删除关键模型,影响业务正常运行的风险
/api/generate POST 中危 模型推理操作,在输入验证不严格时,可能被攻击者利用进行恶意推理请求,干扰正常服务

远程命令执行漏洞(CVE-2024-37032)

影响版本:Ollama < 0.1.34
攻击者可通过路径穿越写入恶意文件,最终控制服务器。

漏洞利用思路:
在Ollama的server/modelpath.go代码中,digest参数未对用户输入进行有效过滤,攻击者通过/api/pull或/api/push接口提交包含路径穿越符(如…/…/)的请求,将恶意文件写入系统关键路径(如/etc/ld.so.preload),触发动态库劫持,实现远程代码执行(RCE)。

漏洞验证截图:
在这里插入图片描述
整改加固建议:
1.若Ollama只对本地提供服务,建议设置环境变量Environment=“OLLAMA_HOST=127.0.0.1”,仅允许本地访问。
2.若Ollama对外提供服务,建议
1)修改config.yaml、settings.json配置文件限定可调用Ollama服务的IP地址;
2)在防火墙等设备部署IP白名单,严格限定访问IP地址;
3)通过反向代理实现身份验证和授权,防止未经授权用户访问。

下载链接

远程命令执行漏洞(CVE-2024-37032)测试工具
公众号回复“20250228”

关注公众号

扫码关注
小C学安全
获取更多精彩内容

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐