文章总结: DeepSeekHarness被曝4个高危漏洞,其中链式沙箱逃逸RCE评分CVSS10.0。攻击者可通过promptinjection诱导模型执行任意命令,已有公网未认证RCEPoC流传。建议立即关闭公网服务或升级至v0.1.0-rc.8版本,并收敛权限、审查插件来源。 综合评分: 90 文章分类: 漏洞分析,应急响应,漏洞预警,解决方案
Deepseek Harmess 远程命令执行漏洞预警(RCE)
原创
ladon ladon
306Safe
2026年8月25日 08:34 北京
在小说阅读器读本章
去阅读
DeepSeek Harness 被曝多个高危漏洞
链式沙箱逃逸 RCE 高达 CVSS 10.0,公网实例已有公开 PoC
⚠️奇安信 CERT 于 2026 年 8 月披露并验证了开源 AI Agent 框架 DeepSeek Harness(deepseek-harness)的 4 个安全漏洞,其中”链式沙箱逃逸远程代码执行”综合评分 CVSS 10.0(严重)。攻击者仅需诱导模型(如打开恶意网页、克隆恶意仓库、fetch 不可信文档)即可在宿主机上执行任意命令。目前互联网上已有针对公网部署实例的未认证 RCE PoC 流传,如果你把 dsh 部署在公网服务器上,请立即关闭服务或升级到最新版本。
一、事件概述
DeepSeek Harness(简称 dsh)是深度求索(DeepSeek)推出的开源大模型智能体运行框架,定位是”万物皆插件”的 agent harness:模型适配器、工具注册表、会话日志、Agent 主循环本身都是 Cordis 插件,可通过配置组合与替换。官方称其”广泛应用于企业和个人构建自定义 AI 助手场景”,对个人开发者尤其有吸引力——DeepSeek API 成本低,插件化组合灵活。
2026 年 8 月 13 日,奇安信 CERT 披露并验证(QAX Verified)了 4 个漏洞,编号与评分如下:
• QVD-2026-52646:链式沙箱逃逸远程代码执行,CVSS 10.0(严重);
• QVD-2026-52644:VM 沙箱逃逸远程代码执行,CVSS 高危;
• QVD-2026-52631:配置加载任意代码执行,CVSS 7.8;
• QVD-2026-52632:只读沙箱信息泄露,CVSS 7.5。
8 月 17 日,安天发布漏洞风险提示,确认影响范围为 DeepSeek Harness v0.1 开发者预览版,并指出厂商已发布升级补丁(GitHub 仓库:deepseek-ai/deepseek-harness)。8 月 20 日,官方发布 v0.1.0-rc.8 版本,这是公测后的首次重大更新。
二、四个漏洞逐个拆解
① 配置加载任意代码执行(QVD-2026-52631,CVSS 7.8)
dsh 的 cordis.yml / cordis.patch.yml 配置文件支持 !!js 表达式。Loader 在挂载配置行时直接用 new Function + eval 求值,表达式沿作用域链可触达 Node.js 全局 process,配合 Node 22.3+ 的 process.getBuiltinModule() 可同步加载任意内建模块——一段配置就是一段加载期的、同步的、任意代码执行。更危险的是,profile patch 文件被 HMR 监听,写入即执行,每次启动重放,可做持久化后门。
② 只读沙箱信息泄露(QVD-2026-52632,CVSS 7.5)
“只读”模式承诺”模型不会改文件”,但对读取完全不设防:进程内 fence 只包住 writeText/editText,readText 原样继承无任何检查;进程级 bwrap 配置是 --ro-bind / /——整个宿主文件系统以只读方式挂载进沙箱。这意味着在 read-only 模式下,模型可以读 ~/.ssh/*、项目 .env、credentials 凭据文件,且默认组合下零审批。而这恰恰是”用只读模式处理不可信仓库”最常见的使用场景。
③ VM 沙箱逃逸 RCE(QVD-2026-52644)
模型可通过 cordis_define / cordis_run 工具写代码并挂载为动态插件,在 node:vm “沙箱”里运行。守卫(guard)封堵了框架成员访问、ctx.extend/ctx.isolate、服务返回 Context 等一系列逃逸面,但漏了一条:execute(args, exec) 路径中 exec.agent.ctx 是真实的运行时 Context,被原样透传给 vm realm 里的模型代码——facade 防住了语法面,没防住对象图。模型代码可经此拿到宿主服务,包括秘密存储。
④ 链式利用:exec 逃逸 → 裸 subprocess → 无约束 RCE(QVD-2026-52646,CVSS 10.0)
这是最致命的一条。沙箱约束(landlock/seatbelt/bwrap 的 argv 包装)只存在于 shell 层——bash-sandbox 在调用 ctx.subprocess.spawn 之前包装 argv,而 subprocess 服务自身对约束一无所知。这是经典的”约束落在 consumer 而非执行点”的 seam 结构问题:其他调用者(或拿到 ctx 的逃逸代码)可直接绕过。
完整利用链:
① 恶意网页 / 恶意仓库内容 / 被 fetch 的文档发起 prompt injection;
② 诱导模型调用 cordis_define + cordis_run(默认组合零审批);
③ vm 沙箱运行模型代码,经 execute(args, exec) 拿到宿主 exec;
④ exec.agent.ctx.get('subprocess').spawn(...) —— 无 landlock/seatbelt/bwrap 约束;
⑤ 在宿主机执行任意命令。
关键点:整个过程不依赖任何部署配置失误,无需文件写入、无需审批、不跨越沙箱边界——默认部署下”配置边界”防线被整体绕过,写 patch 文件(!!js 持久化)、改任意文件、跑任意命令全部开放。
三、已有公开未认证 RCE PoC 在流传
更值得警惕的是,互联网上已出现针对暴露的 dsh 网页实例的未认证 RCE PoC(GitHub 项目 dsh2shell)。原理:伪造头部可解锁 dsh 的特权 RPC 方法,PoC 借此注册一个指向自身内置假模型服务器的临时 LLM 提供者,用确定性工具调用驱动代理的 bash 工具——无需真实模型、无需有效 API 密钥,直接对公网实例打 shell。
演示中攻击者最终拿到 uid=0(root) 的交互式 shell。换句话说,任何把 dsh web 暴露到公网且未升级的实例,现在都可能处于被直接打穿的风险中。
四、影响面:谁最危险
• 公网部署 dsh Web 服务的用户:最危险,已有未认证 PoC 直接针对此类实例;
• 使用 dsh 处理不可信仓库/不可信内容的个人开发者:read-only 模式可读穿凭据,prompt injection 可触发 RCE;
• 自修改/自举部署(如 demo 场景)、配置了 danger-full-access 的实例:写边界防线静默失效;
• 在容器/精简环境中运行的实例:bwrap/Landlock/Seatbelt 缺失时隔离边界直接”降级为建议性”甚至静默失效。
此外,腾讯 AI-Infra-Guard 团队对 dsh 的间接 prompt injection 做了 14,560 次受控实验(arXiv:2608.16393),覆盖 16 个间接内容渠道、35 个载荷目标、12 种攻击方法,最高攻击成功率达 25.5%(文件模式隐藏 Unicode)。这从侧面说明:dsh 对不可信内容的防御本身处于早期阶段,不适合默认信任。
五、紧急处置方法(按优先级)
第一步(立即执行):公网实例先下线
• 如果 dsh 部署在公网服务器且未升级:立即停止服务,或将 Web UI 收回 loopback(仅监听 127.0.0.1);
• 不要用 --host 0.0.0.0 启动;若必须对外提供服务,先确认已升级且经过了完整加固评估,反代本身并不能自动解决 API 信任与认证模型问题。
第二步:升级到修复版本
• 全局安装:npm i -g @deepseek-ai/dsh@latest;
• 临时运行:npx @deepseek-ai/dsh@latest web(注意 npx 默认缓存可能导致一直跑旧版本,务必显式指定 @latest);
• 官方补丁/新版本获取:github.com/deepseek-ai/deepseek-harness,目前最新为 v0.1.0-rc.8;
• 升级前注意:rc.8 的存储格式与旧版本不兼容,先导出并备份关键工作区数据;升级后若出现配置/session 类报错,清理 ~/.dsh/ 下的旧 profile。
第三步:权限与配置收敛
• 权限最小化:日常用 read-only 或 workspace-write,绝不为了省事开 danger-full-access,更不适合无人值守的定时任务;
• 保持 web_fetch / 原始 HTTP fetch provider 处于禁用状态(官方默认禁用,不要擅自开启;其 SSRF 防护尚未完成);
• 审查插件来源,固定版本,别装来路不明的第三方插件(”万物皆插件”同时意味着供应链攻击面);
• 用 dsh --dump-config 检查实际生效的组合,不要只信任配置文件。
第四步:排查是否已被利用
• 检查 ~/.dsh/ 下 profile 目录是否出现可疑的 cordis.patch.yml 改动(!!js 后门);
• 检查宿主机的异常进程、反向 shell 连接(如 4444 等非常用端口的外连)、crontab 与自启动项;
• 检查会话日志(session log)是否有模型执行了非预期工具调用的记录;
• 重点核查 ~/.ssh/、.env、云凭据是否被读取或外发。
六、长期加固建议
• 把仓库内容当作潜在敌意输入:README、Issue 文本、构建产物、抓取的网页都可能携带 prompt injection,处理不可信仓库请在独立容器/VM 中运行;
• 敏感信息移出工作区:云凭据、私钥、.env 不要放在 agent 能读到的目录里;
• 文件系统约束 ≠ 网络约束:沙箱模式只描述文件系统影响,网络出口(egress)需单独验证与控制;
• 高价值操作独立审批:付款、发布、删除、账号权限、对外发送等动作,最终确认必须留给人;
• 关注官方更新机制:当前 CLI 无版本检查和更新提示,建议定期手动确认仓库版本,把升级纳入例行巡检。
最后提醒:Agent 框架的威胁模型与普通 Web 应用不同——模型本身就是”半可信执行主体”,任何喂给它的不可信内容都可能变成攻击指令。在官方补丁到位并完成加固之前,不要把 dsh 暴露在公网,也不要让它接触敏感凭据。安全底线:能离线跑,就别联网开。
参考来源:奇安信 CERT 披露(2026-08-13,QVD-2026-52631/52632/52644/52646);安天漏洞风险提示(2026-08-17);腾讯 AI-Infra-Guard《Security Assessment of DeepSeek Harness with A.I.G》(arXiv:2608.16393);DeepSeek Harness 官方 GitHub;腾讯新闻/虎科技等媒体报道(2026-08-20 rc.8 更新)。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:306Safe ladon ladon《Deepseek Harmess 远程命令执行漏洞预警(RCE)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论