# AI IDE代码执行面测试

> 测试AI IDE中超出MCP与终端过滤范围之外的代码执行面。适用于评估Hook滥用、二进制植入、IDE设置利用、工具定义自动加载，或环境变量前缀 相关向量。模式按交互层级排序：Tier 1为零交互，Tier 4为已信任工作区 且需要特定动作。

- Skill: `spindriftpapilio/ai-ide-5` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add spindriftpapilio/ai-ide-5`
- Raw SKILL.md: https://api.skillmd.com/api/skills/spindriftpapilio/ai-ide-5/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: spindriftpapilio (https://skillmd.com/u/spindriftpapilio)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/spindriftpapilio/ai-ide-5

---


# AI IDE代码执行面测试

本skill重点讨论：除了常见的MCP配置和终端过滤，还能通过哪些路径把行为升级到代码执行。

核心目标不只在于寻找RCE，还要判断**AI IDE自己提供的自动化、扩展点、配置点、启动点**会不会被滥用。

# 什么时候用

- 已确认目标支持Hook、工具配置、启动脚本、IDE设置或外部命令集成
- 怀疑存在自动执行面，但不属于MCP服务器定义本身
- 需要验证审批模型、信任模型、设置继承链是否会把低风险能力升级成执行
- 在写攻击链时，需要补执行落点这一跳

# 审查重点

- Hook机制：会话开始、命令前后、文件变更后是否自动触发
- 二进制植入：PATH搜索顺序、工作区优先级、假冒同名命令
- IDE设置：哪些字段会触发外部程序、脚本、终端、任务
- 工具定义或自动发现：是否会从工作区加载并执行
- 环境变量前缀：是否可借环境变量改写后续命令行为
- 审批缓存：是否会因为之前批过而让新内容静默执行

# 交互层级

|层级|典型场景|
|---|---|
|Tier 1|打开项目就触发Hook、设置、自动加载|
|Tier 2|用户正常与Agent交互，Agent代为触发执行|
|Tier 3|用户必须明确点一次批准|
|Tier 4|用户已信任项目，还得执行某个特定动作|

# 操作流程

1. **先列执行入口。** 不应先行投递payload，应先识别所有可能导致代码执行的入口。
2. **判断是自动触发还是动作触发。**
   这决定层级和报告价值。
3. **看配置来源。**
   是全局、用户级、工作区级，还是远端拉取？
4. **检查审批边界。**
   审批是按内容、按路径、按工具名，还是只按一次？
5. **做最小验证。**
   应先使用无害命令验证执行能力，再评估进一步影响。
6. **确认是否能持久化。**
   能否跨会话、跨重启、跨拉取再次触发。

# 常用测试主题

## 1. Hook自动执行

重点问题如下：
- Hook文件放哪
- 默认是否读取
- 哪些事件会触发
- 未信任工作区是否也会跑2. 二进制植入与PATH劫持重点问题如下：
- 是否优先执行工作区中的同名程序
- Shell、Agent、task runner的PATH是否不同
- Windows、macOS、Linux的差异点是什么3. IDE设置到命令执行重点问题如下：
- 设置项是否允许外部程序、脚本、终端启动
- 是否支持变量插值、命令拼接、Shell展开
- 设置变更后是否热加载4. 工具定义与自动发现重点问题如下：
- 是否会自动扫描工作区中的工具清单
- 是否只展示，还是会真正执行
- 是否把定义文件当成可信配置5. 审批模型缺陷重点问题如下：
- 是否存在TOCTOU
- 是否只记住路径或名称，不校验内容
- 批准一次后后续修改是否仍可执行

# 证据优先级

优先相信：

1. 实际运行结果
2. 触发日志与终端输出
3. 当前生效的配置
4. 源码与文档

不能仅凭源码层面的可疑迹象即认定问题成立，必须证明当前版本在运行时确有相关行为。

# 可优先参阅的资料

- `references/hooks-payloads.md`
- `references/binary-planting-vectors.md`
- `references/ide-settings-vectors.md`
- `references/known-vulns.md`

# 输出表述建议

最终结论宜采用以下结构：

- **入口点**：哪个机制能到执行
- **触发条件**：用户最少要做什么
- **约束**：是否需要信任、审批、特定平台
- **影响**：读、写、持久化、执行到什么程度
- **可链接性**：能否与PI、MCP、外传拼成更完整的链

