当图像加载器变成 SSRF:视觉大模型节点上的云元数据窃取
一款流行的开源大模型服务工具中的 SSRF 漏洞,可将视觉模型的图像加载器变成扫描云元数据与内部服务的工具,漏洞披露后数小时内即遭利用。
这是什么?
2026 年 4 月 21 日,LMDeploy 的维护者发布了一则安全公告。LMDeploy 是一款被广泛使用的开源工具,用于压缩、部署和服务大语言模型与视觉-语言模型,公告涉及其视觉-语言模块中的一个**服务端请求伪造(SSRF)**漏洞。该漏洞由 Orca Security 研究员 Igor Stepansky 报告。在 12 小时 31 分钟内,Sysdig 威胁研究团队就在其蜜罐中记录到首次利用尝试,次日该漏洞便被在真实环境中利用。本文基于维护者的公开公告与事后分析撰写,文中不复现任何可用的攻击代码。
其教训远不止针对单一工具:当模型服务器代你去获取一个 URL 时,这次获取本身就是一个攻击面——而在 GPU 推理节点上,它可能格外有价值。
工作原理
多模态接口接受图像。为避免每个调用方都上传原始字节,大多数服务栈允许传入图像 URL,服务器会顺从地去获取它。在受影响的代码中,图像加载函数获取任意 URL 而不检查其指向——没有主机名解析检查,没有私有网络阻止列表,也没有对链路本地地址的防护。
这就把视觉接口变成了一个通用的 HTTP 请求原语,任何能调用该 API 的人都可控制。攻击者提供的不是图像,而是指向服务器背后基础设施的 URL:
POST /v1/chat/completions (一次正常的视觉请求)
image_url: http://169.254.169.254/latest/meta-data/iam/security-credentials/
|
服务器在服务端获取该 URL,未对目标做任何校验
|
响应(或时延/错误)暴露出仅限内部访问的资源:
云元数据(IMDS)、Redis、MySQL、管理接口、环回端口
在观察到的入侵中,攻击者并未在确认漏洞后就此收手。在一次仅八分钟的会话里,他们用图像加载器探测了内部网络:云元数据服务、一个 Redis 实例、MySQL、一个次要的管理 HTTP 接口,以及一次带外 DNS 回调以确认可对外访问。他们还在同一台服务器上的不同视觉模型之间轮换,以混入正常流量。
为什么重要
教科书式的 SSRF 已经很糟;发生在 AI 服务节点上的 SSRF 更糟,原因在于这些节点持有什么。视觉大模型 worker 通常运行在具有宽泛云角色的 GPU 实例上——可访问模型工件存储桶、训练数据集,往往还有跨账户的 assume-role 权限。只要成功获取一次实例元数据服务,攻击者就可能拿到临时 IAM 凭证,此后波及范围就是整个云账户,而不只是一个容器。
时间线是另一个令人不安之处。该漏洞在远不到一天内即被武器化,抢在多数运营方打补丁之前,且当时并无公开的概念验证。这符合应急响应者直接指出的一种模式:一份详尽的公告——受影响文件、参数名、根因说明、示例代码——实际上就是一段现成的提示词,可让模型据此起草攻击代码。任何披露之后的数小时内,AI 基础设施都会被扫描和攻击,无论该项目多么小众。
防御
校验每一个服务端获取的目标地址。先解析主机名,再拒绝私有、环回和链路本地范围(包括元数据地址)以及非 HTTP 协议。解析之后再次校验以挫败 DNS 重绑定,并优先采用预期图像主机的允许列表,而非阻止列表。
锁定元数据服务。强制使用 IMDSv2(会话令牌),并将响应跳数上限设为 1,使被转发的 SSRF 无法到达它。仅此一项控制即可消除所观察攻击中影响最大的一步。
对推理节点实施最小权限。模型服务器很少需要在实例上附加宽泛的 S3 或跨账户角色。将角色收敛到服务确实需要的范围,并把训练数据与工件的权限放在独立的身份上。
约束出站流量与内部可达性。默认拒绝推理 worker 的出站流量,将其与 Redis、数据库和管理接口隔离,并在模型主机突然向内部网段发起 DNS 或 TCP 连接时告警。
在收到公告时即打补丁,而非等到方便时。由于 AI 基础设施漏洞会在数小时内被利用,应把服务栈公告当作紧急变更处理:尽快升级到修复版本,并监控随公告一并发布的指标。
状态
| 项目 | 详情 |
|---|---|
| 参考 | GitHub 公告 GHSA-6w67-hwm5-92mq(CVE-2026-33626),CVSS 7.5 |
| 披露 | 2026 年 4 月 21 日;约 12.5 小时内出现首次真实利用尝试 |
| 受影响 | LMDeploy 视觉-语言模块,所有带视觉支持的版本,直至修复版本(据公告为 0.12.x 及更早) |
| 根因 | load_image() 获取任意 URL,未校验内部/私有/链路本地目标 |
| 影响 | 内部网络扫描,访问 Redis/MySQL/管理接口,窃取云元数据与 IAM 凭证 |
| 修复 | 升级到修复版本;按公告所述实施目标校验 |