开源11天、14万星,DeepSeek Harness被一记HTTP头打穿:Agent框架的安全课来了?

  • 2026-08-26

DeepSeek Harness可能是今年蹿红最快的开源项目之一。8月13日晚开源,MIT协议,三天内GitHub星标从4.5万冲到14万量级。 8月24日,奇安信威胁情报中心给它泼了一盆冷水:一个未授权远程代码执行漏洞,编号QVD-2026-57410,评级 极危,CVSS 9.8 ,POC和技术细节均已公开,奇安信CERT已验证。目前暂无CVE编号,暂未观测到在野利用。 从开源到被打出9.8分漏洞,中间只隔了11天。 先弄清被打的是什么 DeepSeek Harness(命令行叫dsh)是DeepSeek开源的Agent运行框架,官方定位公式就一行: AGENT = MODEL + HARNESS 。 模型负责想,Harness负责做:工具调度、bash执行、文件读写、会话管理、子Agent派活,全部由插件组合而成,底层跑的是Cordis插件元框架。它不强绑模型,官方文档列出的提供方覆盖Anthropic、OpenAI、Google、Azure等几十家,直接对标Claude Code和Codex。官方明说还在开发者预览阶段,后面会有破坏性变更。 它的战略分量也不轻。8月13日晚DeepSeek连发三张牌:V4 Pro正式版、API涨价预告、Harness开源。把三张牌放在一起看,路线很清楚——模型继续卷,开发者入口也要握在自己手里。过去两年,开发者每天打开的IDE和Agent长期握在Claude Code、Cursor手里,Harness就是DeepSeek把自家模型接到自己定义的执行层上的那一手。 关键点在于:Harness天生握着高权限工具。它能跑bash、能读写文件系统、能执行代码——这是Agent干活的本职。 漏洞曝光的,恰恰是这套”手脚”的看门人出了问题。 攻击链:一个伪造的Host头,五步拿到服务器 漏洞根源很classic:dsh的Web服务用HTTP Host请求头 来判断请求是否来自本机回环地址(localhost),以此守护/api后面的高权限RPC接口。 问题是,Host头是客户端可以随意填写的字段。把信任建立在用户可控的输入上,等于把门锁钥匙塞在门垫底下。 完整攻击链这样走: 整条链路 不需要任何有效API Key,也不需要真实模型 。攻击者注册一个指向自己服务器的虚假大模型提供者,再借这个假提供者驱动dsh的Agent工具(比如bash)执行系统命令,最终以dsh服务进程的权限完全控制主机。 这一步最值得停下来想:传统Web漏洞拿到RCE,攻击者还得自己摸索提权路径;而在Agent框架里,bash工具本来就是产品功能,攻击者只是”借用”了现成的手。 链条里还藏着一个次生风险。注册虚假LLM提供者依赖llm.discoverModels这类接口去访问攻击者指定的地址,如果目标地址范围不受限,同样的通道可以被用来探测内网、拉取云元数据凭据——这是典型的SSRF姿势。奇安信的修复建议里专门点名要给它加上访问范围限制,原因就在这里。 谁真的危险 先给个定心丸:默认安装相对安全。dsh的Web UI默认绑定127.0.0.1:3080,只监听本机回环,外部根本摸不到。 真正高危的是这三类部署: •把管理API直接暴露到公网; •用Docker端口映射把服务转到了非回环网络; •套了反向代理对外提供访问,又没在代理层做严格Host头校验。 再叠加上”攻击者需要一台目标实例能访问到的服务器来跑假LLM提供者”,利用条件才算凑齐。 受影响版本目前确认为 0.1.1-rc.2 。考虑到Harness还在预览期、很多团队正是这两天刚开始搭建评估环境,自查的窗口期就是现在。 自查可以落到三条具体动作上:确认dsh进程绑定的监听地址是否为127.0.0.1;查Docker容器的端口映射有没有把3080之类的管理端口转出去;如果前面挂了Nginx等反向代理,确认代理层有没有对Host头做白名单校验。三条里中任何一条,都建议先按下一节的方式处置。 怎么堵 奇安信给出的处置建议分三层: 1. 网络隔离(最直接有效) :立即把dsh管理API端口从公网隔离,只允许可信内网IP访问;确需远程访问,在反向代理层加上真实身份认证(mTLS、SSO、IP白名单)。 2. 前置校验 :在Nginx等前端代理配置严格的Host头校验规则,只放行合法域名或IP。 3. 架构级修复 :/api信任围栏需要引入独立于Host头的认证机制,特权RPC不能只靠loopback判定保护;llm.discoverModels接口要限制可访问的目标地址范围,把SSRF和凭据外泄的口子一并堵上。 同时跟进DeepSeek官方安全公告,及时升级到修复版本。 这个漏洞的真正信号 单看技术本身,Host头伪造是Web安全教科书里的经典错误,谈不上多高级。 但把它放

about image