CVE-2026-107292:to_web 和 clai 不校验 Host 头,DNS 重绑定让网页劫持本地 agent
NVD 十月十四日收录 CVE-2026-107292:to_web() 和 clai 这两个本地 Web 开发聊天服务器不校验 HTTP Host 头。攻击者架设一个恶意网站,诱导开发者访问;该网站用 DNS 重绑定把域名解析到 127.0.0.1,浏览器就把这个恶意页面对本地 loopback 上跑的 agent 服务器发的请求当成同源请求。恶意页面可以读取 agent 服务的 UI,并提交聊天请求——这些请求带着本地进程的权限和凭证执行 agent 工具,导致数据泄露或副作用。NVD 特别注明:绑定到 localhost、Origin 检查、CSRF token 都挡不住这种同源 DNS 重绑定。 DNS 重绑定为什么这么难防? 浏览器的同源策略是按域名判断的,不是按 IP。一个恶意域名 evil.com 第一次解析到攻击者服务器,返回一段 JS;JS 触发第二次 DNS 查询,把 evil.com 重解析到 127.0.0.1。此后浏览器认为 evil.com 跟本地 agent 服务器「同域」,因为域名没变。Host 头检查能挡一部分——服务器看到 Host 是 evil.com 而不是 localhost 就拒绝——但 to_web 和 clai 没做这个检查,于是请求被正常处理。 为什么绑 localhost 不够? 开发者以为绑 127.0.0.1 外网打不进来就安全了。但 DNS 重绑定是从浏览器内部发起的,流量不经过外网防火墙,直接在本机 loopback 上走。浏览器作为受害者的「代理」,把恶意请求送到了本地服务。CSRF token 也没用,因为恶意页面已经能同源读取 agent UI,token 可以从页面上抓出来。Origin 检查同样失效,因为 Origin 是 evil.com,但浏览器把请求发去了 127.0.0.1——这正是重绑定的核心。 ...