HackerNews

HackerNews
Ollama 越界读取漏洞致远程进程内存泄漏

Ollama 越界读取漏洞致远程进程内存泄漏

给文章评分:

网络安全研究人员披露了 Ollama 中的一个严重安全漏洞,若该漏洞被成功利用,远程且未经身份验证的攻击者可能泄露其整个进程内存。

这一越界读取漏洞被追踪为 CVE - 2026 - 7482(通用漏洞评分系统 CVSS 分数:9.1),Cyera 将其命名为 “流血的喇嘛(Bleeding Llama)”,全球可能有超 30 万台服务器受影响。

Ollama 是一个广受欢迎的开源框架,借助它,大语言模型(LLMs)无需在云端运行,在本地即可实现。在 GitHub 上,该项目获得超 17.1 万颗星标,被复刻超 1.61 万次。

CVE.org对该漏洞的描述为:“Ollama 0.17.1 版本之前,GGUF 模型加载器存在堆越界读取漏洞。/api/create 端点接受攻击者提供的 GGUF 文件,该文件中声明的张量偏移量和大小超过文件实际长度;在 fs/ggml/gguf.go 和 server/quantization.go 中的量化过程(WriteTo () 函数)中,服务器会读取超出已分配堆缓冲区的内容。”

GGUF 即 GPT 生成的统一格式(GPT - Generated Unified Format),是一种用于存储大语言模型的文件格式,便于在本地轻松加载和执行模型。

根本问题在于,Ollama 从 GGUF 文件创建模型时,特别是在名为 “WriteTo ()” 的函数中,使用了 unsafe 包,这使得绕过编程语言内存安全保障的操作成为可能。

在假设的攻击场景中,恶意行为者可向暴露的 Ollama 服务器发送特制的 GGUF 文件,将张量形状设置为非常大的数字,通过 /api/create 端点创建模型时触发堆越界读取。成功利用此漏洞可能泄露 Ollama 进程内存中的敏感数据。

这些数据可能包括环境变量、API 密钥、系统提示以及并发用户的对话数据。攻击者可通过 /api/push 端点将生成的模型工件上传到其控制的注册表,从而窃取这些数据。

漏洞利用链分三步展开:

  1. 使用 HTTP POST 请求,将张量形状被夸大的特制 GGUF 文件上传到可网络访问的 Ollama 服务器。

  2. 利用 /api/create 端点激活模型创建,触发越界读取漏洞。

  3. 利用 /api/push 端点将堆内存中的数据泄露到外部服务器。

Cyera 安全研究员多尔・阿提亚斯(Dor Attias)表示:“攻击者基本上可以从你的人工智能推理过程中获取组织的任何信息 ——API 密钥、专有代码、客户合同等等。”

“不仅如此,工程师常将 Ollama 与 Claude Code 等工具连接。在这种情况下,影响更为严重 —— 所有工具输出都会流向 Ollama 服务器,保存在堆中,最终可能落入攻击者之手。”

建议用户应用最新修复程序,限制网络访问,检查运行实例是否暴露在互联网上,并通过防火墙进行隔离和保护。由于 REST API 本身不提供身份验证,还建议在所有 Ollama 实例前部署身份验证代理或 API 网关。

Ollama 中两个未修复漏洞可致持久代码执行

与此同时,Striga 的研究人员详细分析了 Ollama Windows 更新机制中的两个漏洞,这两个漏洞可被串联起来实现持久代码执行。自 2026 年 1 月 27 日披露后,这些缺陷仍未修复,在 90 天披露期过后相关信息已被公开。

Striga 联合创始人巴尔托米耶伊・“巴尔泰克”・德米特鲁克(Bartłomiej “Bartek” Dmitruk)称,Windows 桌面客户端在登录时会从 Windows 启动文件夹自动启动,监听 127.0.0 [.] 1:11434 端口,并通过 /api/update 端点定期在后台轮询更新,以便在应用下次启动时运行任何待处理的更新。

已识别的漏洞涉及路径遍历和签名缺失检查,与登录例程结合后,若攻击者能影响更新响应,就可在每次登录时执行任意代码。以下是这些漏洞:

  • CVE - 2026 - 42248(CVSS 分数:7.7)—— 缺失签名验证漏洞,与 macOS 版本不同,Windows 版本在安装更新二进制文件前不验证其签名。

  • CVE - 2026 - 42249(CVSS 分数:7.7)—— 路径遍历漏洞,Windows 更新程序直接从 HTTP 响应头创建安装程序临时目录的本地路径,未进行清理。

要利用这些漏洞,攻击者需控制受害者 Ollama 客户端可访问的更新服务器。在这种情况下,可能出现的场景是,作为更新过程一部分提供的任意可执行文件被写入 Windows 启动文件夹,且不会引发任何签名检查问题。

为控制更新响应,一种方法是覆盖 OLLAMA_UPDATE_URL,使客户端指向普通 HTTP 协议的本地服务器。攻击链还假设自动更新功能(AutoUpdateEnabled)处于开启状态,这是默认设置。

此外,缺失完整性检查本身就可能导致代码执行,无需利用路径遍历漏洞。在这种情况下,安装程序会被放置到预期的临时目录。下次从启动文件夹启动时,更新过程将在不重新验证签名的情况下被调用,从而导致攻击者的代码被执行。

不过,远程代码执行并非持久的,因为下一次合法更新会覆盖临时文件。结合路径遍历漏洞,恶意行为者可将可执行文件重定向到常规路径之外的位置,实现持久代码执行。

负责协调披露过程的波兰计算机应急响应小组(CERT Polska)称,Ollama for Windows 0.12.10 至 0.17.5 版本易受这两个漏洞影响。在此期间,建议用户关闭自动更新,并从启动文件夹(“% APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup”)中删除任何现有的 Ollama 快捷方式,以禁用登录时的静默执行路径。

德米特鲁克表示:“任何运行 0.12.10 至 0.22.0 版本的 Ollama for Windows 安装都存在漏洞。路径遍历会将攻击者选定的可执行文件写入 Windows 启动文件夹。缺失签名验证会使这些文件保留在那里:正常更新程序中用于删除未签名文件的写入后清理操作在 Windows 上不起作用。下次登录时,Windows 会运行遗留在那里的任何文件。”

“这一系列操作会以运行 Ollama 的用户权限级别实现持久、静默的代码执行。实际的有效载荷包括反向 Shell、窃取浏览器机密和 SSH 密钥的信息窃取程序,或者用于转向其他持久化机制的释放器。任何以当前用户身份运行的程序都有可能。从启动文件夹中删除放置的二进制文件可结束这种持久性,但底层漏洞依然存在。”


消息来源:thehackernews.com
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文
分享到:
hackernews

hackernews

该作者暂无简介