# Cursor 终端工具环境变量绕过漏洞
## 概述
Cursor 是一款面向 AI 编程的代码编辑器。在版本 2.3 之前,当 Cursor Agent 在启用 Allowlist 模式的自动运行(Auto-Run)模式下运行时,某些 shell 内建命令仍可在未列入允许列表且无需用户确认的情况下执行。
## 影响版本
- 受影响版本:低于 2.3 的版本
- 修复版本:2.3
## 细节
在 Allowlist 模式启用的情况下,本应限制只能执行白名单中的 shell 命令。然而,该漏洞允许绕过此限制,执行特定 shell 内建命令(如 `export`、`unset`、`alias` 等)。这些命令可用于修改当前 shell 环境中的环境变量或命令别名。
攻击者可通过直接或间接的提示词注入(prompt injection)操纵 AI Agent 执行恶意构造的指令,进而篡改影响可信命令行为的环境变量(例如 `PATH`、`SSH_AUTH_SOCK`、`GIT_SSH_COMMAND` 等),实现环境污染。
## 影响
攻击者可利用此漏洞在未授权的情况下操控 shell 执行环境,可能导致命令劫持、敏感操作被绕过、权限提升或敏感信息泄露,从而破坏系统的完整性和安全性。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Terminal Tool Allowlist Bypass via Environment Variables · Advisory · cursor/cursor · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 漏洞关键信息
#### 概要
- **漏洞类型**: 绕过白名单通过环境变量
- **影响版本**: <= 2.2
- **修复版本**: 2.3
- **严重性**: 高
#### 描述
- **摘要**: 当 Cursor Agent 在启用白名单模式的自动运行模式下运行时,某些 shell 内置命令可以在没有出现在白名单中且无需用户批准的情况下执行。这允许攻击者通过直接或间接的提示注入来篡改 shell 环境,通过设置、修改或删除影响可信命令的环境变量。
- **影响**: 在任何工作区中,当代理在非默认的自动运行模式和白名单模式下运行,且受害者执行依赖环境变量的命令时,可以绕过命令白名单。当与提示注入或恶意模型漏洞链接时,这可能导致任意代码执行。
#### 修复措施
- 改进了终端命令解析的边缘情况。
#### 致谢
- 该漏洞由 Pillar Security Research 团队的 Dan Lisichkin 发现。
#### 弱点类别
- CWE-15
- CWE-20
- CWE-74
- CWE-77
- CWE-78
- CWE-94
- CWE-269
#### 识别者
- Danus365
Zaproxy alias impedit expedita quisquam pariatur exercitationem. Nemo rerum eveniet dolores rem quia dignissimos.