11 月 5 日披露的 CVE-2026-122236。OpenHands 的 Agent Canvas 客户端(npm 包 @openhands/agent-canvas)会在本地起一组服务:反向代理、静态前端、Agent Server 与 Automation 后端。
问题在哪
scripts/static-server.mjs 的 parseArgs 把静态前端服务的默认绑定地址设成双冒号,也就是监听全部网卡;startStaticServer 对未带凭据的 GET 请求,会把 Agent Server 的会话密钥以 window 变量的形式明文写进落地页 HTML 并返回 200。ingress 的 server.listen 同样未指定绑定主机。
后果
同一局域网内无需任何认证,直接 GET 就能拿到密钥。这个密钥同时是 Agent Server 的会话密钥、Automation 管理密钥与 KV 存储加密密钥。拿到之后可以执行任意命令、读任意文件、取走明文 LLM 凭据与全部会话历史。
修复思路
新增的 bind-host.mjs 把默认绑定地址从双冒号改成 127.0.0.1;监听地址非回环且没有显式允许时,拒绝向 HTML 注入密钥,切换成要求输入 API Key 的公开模式。
通用教训
本地开发工具默认监听 0.0.0.0 是个反复出现的设计错误。装任何本地 Agent 工具,先看它绑了哪些地址;在多人共享的办公网、咖啡厅 Wi-Fi、云主机的公网网卡上,这类问题会直接变成事故。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。