文章总结: 该研究揭露了CVE-2026-65105漏洞,攻击者通过DNS重绑定绕过Ollama的CORS和host校验,利用绑定0.0.0.0的配置缺陷,实现模型模板注入持久化劫持本地AI智能体。攻击可静默执行恶意指令、外传数据,影响范围取决于智能体被授予的业务权限。建议避免服务绑定非回环地址、加强身份认证并评估智能体权限边界。 综合评分: 90 文章分类: 漏洞分析,ai安全,渗透测试,红队,安全工具
浏览网页劫持本地 AI 智能体
原创
黑鸟 黑鸟
黑鸟
2026年8月27日 23:32 中国香港
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
你有没有想过,仅仅点开一个网页,本地运行的 AI agent(AI 智能体)就会被悄悄接管,后续每一轮对话都在执行攻击者的隐藏指令,而使用者完全察觉不到异常。
Cyera 与 Oasis Security 最新发布的安全研究就揭露了这样一类 Drive‑By Agent Hijacking(路过式智能体劫持)攻击,对应 NVIDIA NemoClaw 的高危漏洞 CVE‑2026‑65105,给正在快速普及的本地 AI 部署敲响警钟。
NemoClaw 是 NVIDIA 推出的工具,专门用来把开源 AI 智能体 OpenClaw 部署到 NVIDIA OpenShell 沙箱内部,沙箱原本会提供文件系统、网络、进程层面的隔离,本意就是降低 AI 智能体越权操作主机的风险。在推理运行环节,NemoClaw 支持多种后端,其中一个主流方案就是对接 Ollama,开发者可以把大模型完全跑在自己本机硬件之上,不用把提示词、业务代码上传第三方云端 API,数据全部留在本地,这也是很多企业和开发者选择本地大模型的核心原因。
为了让 Docker 容器内部的 OpenShell 沙箱能够访问主机上的 Ollama 服务,NemoClaw 启动 Ollama 时会把监听地址设置成OLLAMA_HOST=0.0.0.0:11434,也就是绑定机器全部网络接口。这里存在一处极具迷惑性的细节,程序输出日志会提示Using Ollama on localhost:11434,很容易让使用者误以为服务只允许本机回环访问,实际上外部网络、局域网设备都可以触达这套 Ollama 的 API 接口,而 Ollama 本身的 11434 端口 API 是完全没有身份认证机制的。
很多人会好奇,Ollama 难道没有自带防护吗,其实 Ollama 设计了两层浏览器攻击防护,分别是 CORS 中间件和 Host 头部校验。CORS 中间件会校验请求的 Origin 来源头部,Host 头部校验则只放行localhost、本机主机名、.localhost、.local这类本地域名,这套组合防护原本就是用来抵御网页侧发起的本地服务攻击。但是这里藏着关键逻辑缺陷,一旦 Ollama 绑定到非回环地址例如0.0.0.0,程序就会直接跳过全部 Host 头部校验,只剩下 CORS 一层屏障,而 DNS rebinding(DNS 重绑定)攻击技术刚好可以绕过 CORS 的限制。
DNS rebinding 是一套成熟的浏览器攻击手段,攻击者只需要拥有一个自己控制的域名,不需要操控受害者的局域网或者 DNS 基础设施就可以完成攻击。攻击域名初始解析指向攻击者的公网服务器 IP,受害者访问网页之后,浏览器加载页面内的 JavaScript 脚本,攻击者迅速修改 DNS 解析记录,把同一个域名解析地址切换到127.0.0.1或者受害者局域网 IP。浏览器同源策略的判断依据是域名,不是最终解析得到的 IP 地址,浏览器依旧把后续请求判定为同源,直接把请求发送到本机 11434 端口的 Ollama 服务上。此时因为 Ollama 绑定在0.0.0.0,Host 校验已经失效,Origin 头部又匹配攻击者域名,CORS 校验直接放行,攻击者就此拿到 Ollama API 完整的无认证访问权限。
拿到 API 权限之后攻击者可以执行的操作远比想象中丰富,不止调用 GPU 跑推理任务,还可以读取全部已安装模型的版本、量化参数、系统提示词、模板配置,获取主机主机名、Ollama 公钥等敏感信息,也能下载大量模型占满磁盘空间、删除本机模型、强制登出账号,甚至把本地模型推送上传到ollama.com平台。但整个攻击链条中破坏力最强的,并不是简单调用接口,而是模型模板注入(template injection),实现持久化的模型投毒。
这里需要区分两种投毒思路,直接修改模型内置 system 字段的提示词注入是行不通的,OpenClaw 智能体每次发起请求会在 messages 数组中携带自身的系统提示词,会直接覆盖模型内置的 system 配置,攻击者植入的指令会被直接忽略。真正奏效的攻击点是 Ollama 的 template 模板,这是一套 Go template 模板,它会在推理阶段把结构化的 messages 消息数组渲染拼接成模型真正接收的原始文本,这套模板属于模型层面的属性,调用 API 的上层客户端没有读取、感知、拦截它的能力。
攻击者先调用接口拉取原始模板完整内容,在不破坏原有工具渲染逻辑、特殊标记符的前提下,往系统消息的末尾拼接攻击者自定义的隐藏指令,再通过/api/create接口写回模型配置。之后无论上层 AI 智能体传入什么样的 system 系统提示词,在送入大模型之前,恶意指令都会被自动追加进去,模型名称、文件大小、元数据看不出任何改动痕迹,这套恶意逻辑会留存下来,作用于之后每一次对话,CLI 命令行、API 调用、AI 智能体全部都会受其影响,普通使用者完全无从分辨。
被投毒之后的 AI 智能体会在完全静默的状态下执行攻击者意图,它可以生成暗藏漏洞的代码,并且在人工简单审查的时候伪装正常,可以主动屏蔽安全告警、不再输出风险提醒,引导使用者选用攻击者可控的软件包、链接、配置,如果智能体具备对外网络访问权限,还会偷偷把对话记录、读取到的本地文件外传。
很多开发者会产生疑问,OpenShell 不是部署了沙箱吗,为什么还会造成严重后果,沙箱确实可以隔离主机的文件、进程、基础网络访问,保护终端设备本体不被直接破坏,但现实生产环境当中,AI 智能体往往会被授予大量业务权限,对接代码仓库、CI/CD 流水线、内部 API、云服务、MCP servers 工具服务。攻击者劫持的不是主机,而是智能体本身拥有的合法权限,攻击影响范围不再受沙箱边界约束,而是取决于这套 AI 智能体被分配了多少内部业务资源访问权限。除此之外0.0.0.0的绑定配置还会把 Ollama 直接暴露给整个局域网,同网络下的其他沦陷设备、物联网设备都可以直接访问 API,不需要借助 DNS 重绑定就能发起攻击。
研究团队也放出了完整 POC 演示视频,整个攻击流程可以完整复现,从访问恶意网页,到窃取本机 Ollama 信息,改写模型模板,再回到智能体对话界面,相同提问已经带出注入标记,全程没有弹窗,没有用户确认交互,全部在后台完成。相关研究已经遵循负责任披露流程,提前把全部漏洞细节提交给 NVIDIA 的 PSIRT(产品安全事件响应团队)。
这项漏洞带给我们几条很现实的安全启示,首先给 AI 智能体做沙箱隔离是必要条件,但远远不等于安全,威胁的爆炸半径由智能体被授予的业务权限决定,而不是沙箱本身;其次服务绑定0.0.0.0不只是一项简单网络配置,更是重要安全决策,没有身份认证的本地服务,除非完整评估风险并做好防护,否则严禁绑定全部网络接口;DNS rebinding 这类老旧攻击手段,在本地 AI 大模型兴起之后又找到了新的攻击目标,当 Ollama 被绑定到非回环地址,原本用来抵御该攻击的 Host 头部校验就会失效。
随着 AI agent 深度融入开发流程和企业内部工作流,安全边界已经不只是模型权重文件,聊天模板、网络监听配置、推理后端接口每一个环节,都需要纳入安全防护的考量范围。本地大模型带来隐私优势的同时,也丢掉云厂商集中式安全防护,开发者不能默认本地部署就更加安全。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:黑鸟 黑鸟 黑鸟《浏览网页劫持本地 AI 智能体》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论