速修 | Claude SDK 参数注入 RCE,CVSS 9.2 CVE-2026-96620
红队安全圈
红队安全圈
红队安全圈
2026年10月17日 21:53
重庆
去阅读
Claude Agent SDK 参数透传不校验,注入 CLI 参数即可绕过权限控制拿到任意命令执行,CVSS 9.2,修复版本已发布。
01 引言
Claude Agent SDK 是 Anthropic 官方的 Python SDK,很多 AI 应用拿它接 Claude CLI 做自动化 Agent。这次的问题是 SDK 把调用方的 resume 会话 ID 原样透传给底层 CLI,攻击者只要能控制这个值,就能往命令行里塞自己的参数,直接绕过 SDK 的权限控制拿到任意命令执行。CVSS 9.2,Critical 级。如果你的应用会把用户输入、外部会话标识传进 resume,这不是理论风险,是现实攻击面。
02 漏洞速览
漏洞编号CVE-2026-96620
影响产品claude-agent-sdk(Python)
漏洞类型参数注入 → 任意命令执行
危害等级Critical / CVSS 9.2
在野利用暂无在野利用报告
公开 PoC暂无,补丁与 commit 已公开
攻击前提不可信输入传入 resume 选项
修复版本0.2.121
03 漏洞成因
根因是典型的参数透传不校验。SDK 内部通过子进程调用 Claude CLI,resume 选项的值没经过任何过滤就拼进了命令行参数列表。CLI 的参数解析遵循 POSIX 惯例:以 - 开头的 token 被当成开关而不是值。
于是当攻击者控制的 session ID 形如 --mcp-config=... 时,CLI 会把它识别为一个新的命令行选项,而不是要恢复的会话名。
04 影响范围
受影响:claude-agent-sdk 低于 0.2.121 的所有版本(Python)。0.2.121 及以上已修复。前提条件是应用侧把不可信输入传给了 resume;如果 session ID 是服务端自己生成的 UUID,风险可控,但仍建议升级。
05 危害推演
利用路径很清晰:攻击者把恶意值传给 resume,注入 --mcp-config 参数,指向一个攻击者定义的 stdio MCP server 配置。CLI 启动时会按该配置去拉起 MCP server 进程——而 stdio MCP server 本质就是执行一条本地命令。这一步直接绕过了 SDK 的权限控制,效果就是 CLI 启动瞬间执行任意命令。
如果再注入一个 --allowedTools 或其他开关,还能进一步调整权限模型,放大危害。红队评估时重点看两点:resume 的值从哪来、有没有走白名单校验。
06 检测与排查
一条命令查当前装的版本:
pip show claude-agent-sdk \
| grep Version
低于 0.2.121 就受影响。代码层面再查一遍调用点:凡是把用户输入、HTTP 参数、外部数据直接传进 resume=... 的,都是高危路径,即便升级后也应加白名单校验。
07 修复建议
升级到 0.2.121 或以上:
pip install -U \
claude-agent-sdk
应用侧对 resume 值做格式校验(如限定 UUID 格式),拒绝以 - 开头的输入。升级后验证:传入带 - 前缀的值应不再被 CLI 当作开关解析。
08 红队视角
这个洞的样本价值在于:AI Agent 链条正在成为新的 RCE 入口。SDK 封装 CLI、CLI 接 MCP,任何一层把不可信输入透传下去,权限模型就是纸糊的。渗透测试时可以把 Agent 框架的参数透传列为标准检查项:resume / session / conversation ID 这类字段,逐个喂探测值看回显。防御方同理——所有拼进子进程参数的字符串都要走白名单,而不是黑名单过滤。
下期继续蹲厂商补丁和 PoC 动静,关注后漏洞先知道,修复不踩坑。
— END —
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论