文章总结: Ollama版本小于0.7.0存在越界写入漏洞,攻击者可通过构造恶意GGUF模型文件导致远程代码执行。漏洞位于处理多模态Llama模型文件的代码逻辑中,由于未验证数组索引值是否超出范围导致堆内存破坏。用户应通过ollama-v检查版本并及时升级至0.7.0或以上版本以防范风险。
综合评分: 91
文章分类: 漏洞分析,漏洞预警,WEB安全,应用安全,数据安全
Ollama 越界写入漏洞简报
科恩DF小队
腾讯安全威胁情报中心
2025年11月27日 09:30
江苏
01
漏洞基本信息
- 漏洞名称
无CVE
- 漏洞发布时间
2025年10月03日
- 影响组件
Redis Lua 脚本模块
- 影响版本
Ollama 版本 <0.7.0
- 披露渠道
Sonar博客[1]
- 漏洞危害
远程代码执行 (RCE), 攻击者可以诱导用户加载恶意 GGUF 文件。一旦解析器处理该文件,攻击者即可覆盖关键的函数指针(如 ggml_backend 结构体中的 .synchronize 回调),并在运行 Ollama 服务的服务器上执行任意命令。不过因为缺乏leak手段,在开启PIE的情况下,暂时无法实现利用
- 漏洞描述
Ollama 的 GGUF 模型文件解析引擎中存在一处越界写入(Out-Of-Bounds Write)漏洞。该漏洞具体位于处理 mllama(多模态 Llama)模型文件的代码逻辑中。
当系统解析 GGUF 文件中的元数据时,程序会读取mllama.vision.intermediate_layers_indices数组,用于标记哪些层是“中间层”。由于代码未验证数组中的索引值是否超出了模型实际定义的层数范围,直接将该索引用于 std::vector
02
排查方式
通过 ollama -v 确认版本号。
版本 < 0.7.0 时,视为存在风险。
03
防护建议
更新版本至0.7.0或以上。
04
洞见
- #### 复现截图
#
- 漏洞分析
漏洞发生在视觉模型文件(GGUF)的加载解析过程中
structmllama_ctx*mllama_model_load(constchar*fname,constint verbosity =1){
...
auto&vision_model = new_mllama->vision_model;
auto&hparams = vision_model.hparams;
...
hparams.n_layer =get_u32(ctx,"mllama.vision.block_count");
...
std::vector<uint32_t> intermediate_layers_indices =get_u32_array(ctx,"mllama.vision.intermediate_layers_indices");
hparams.intermediate_layers.resize(hparams.n_layer);
for(size_t i =0; i < intermediate_layers_indices.size(); i++){
hparams.intermediate_layers[intermediate_layers_indices[i]]=true;
}
n_layer和intermediate_layers_indices 都是从模型元数据中直接读取的,用户可控,其中intermediate_layers_indices是一个数组。
在后续hparams.intermediate\_layers[intermediate\_layers\_indices[i]]=true;没有检查intermediate_layers_indices[i] 取出的值是否在intermediate_layers下标范围内,也即检查是否小于n_layer。
这是一个比较明显且容易触发的溢出,效果是可以覆盖某一bit为1,搭配synchronize函数指针可以实现任意地址调用。
此外,GGUF 模型文件的解析安全问题并非首次出现。早在 2024 年,该组件就曾受到 CVE-2024-21825、CVE-2024-23496 及 CVE-2024-25666 等漏洞的影响。为了彻底解决这一痛点,Ollama 从 0.7.0 版本开始,引入了用 Go 语言重写的解析器,旨在从根本上杜绝此类内存安全问题。
参考链接
[1] Ollama Remote Code Execution: Securing the Code That Runs LLMs | Sonar
https://www.sonarsource.com/blog/ollama-remote-code-execution-securing-the-code-that-runs-llms/
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:腾讯安全威胁情报中心 科恩DF小队《Ollama 越界写入漏洞简报》