16% 的 AI 编程 Agent 配置存在安全缺陷 新研究说了什么
arXiv 论文扫描 3171 个 GitHub 仓库的 AI Agent 配置,16% 存在安全缺陷:9.8% MCP 无版本锁定,3.1% 预批准任意执行,3.8% skill 预批准 shell。

2026 年 9 月 7 日,arXiv 发布了一篇论文 "Scanning the Harness",系统分析了 3,171 个 GitHub 仓库中 AI 编程 Agent 的配置安全。结论:16.0% 的配置存在安全缺陷,16.7% 存在任何类型的确认缺陷。这不是模型越狱问题,而是 Agent 配置本身的供应链风险。
什么是 Harness
论文把 AI Agent 的配置层称为 "harness"(.harness):instruction 文件、skills、hooks、MCP 服务器声明、subagent 定义。这些配置是开发者编写和共享的,从 marketplace 和公开仓库安装,以开发者权限运行,没有 lockfile、没有安装时检查、也没有描述组件权限的词汇表。
这和 npm/pip 的依赖管理形成对比。传统包管理有版本锁定、安装时校验和漏洞数据库。Agent 配置的安装目前几乎没有这些保护。
三类安全缺陷
论文只统计了从字节内容可以直接判定的、后果是安全暴露的规则:
MCP 无版本锁定(9.8%):安装的 MCP 服务器没有 pin 版本号。如果 MCP 服务器后续更新包含恶意代码,你的 Agent 会自动使用新版本。
预批准任意执行(3.1%):配置看起来有范围限制(比如 Bash(python:*)),但实际上预批准了任意 Python 代码执行。攻击者可以通过构造特定的 Python 命令绕过表面上的限制。
Skill 预批准 shell(3.8%):安装的 skill 预批准了 shell 访问权限。3.7% 的 skill 集合携带这类预批准,marketplace 扫描可以发现。
研究方法
论文的验证流程比简单的静态扫描严格得多:
- 独立实现从 pinned commit 重新推导每个发现
- LLM 裁决器对所有分歧做判断(prompt 已公开)
- 第二个独立模型 session 重新检查每个 counted pair
原始扫描器在同样规则下的误报率是 25.5%,经过三层验证后降到 16.0% 的安全缺陷率。论文明确说没有确认任何凭证外泄路径。
对日常开发者的实际建议
检查你的 Agent 配置:
- MCP 服务器是否 pin 了版本?在
.cursor/mcp.json或 Claude Code 的 MCP 配置里,确认每个 server 有明确的版本号 - 预批准的工具范围是否过宽?
Bash(*)或Bash(python:*)这类配置实际上等于无限制 - 从 marketplace 安装的 skill 是否预批准了 shell?安装前读 skill 的 manifest
这和 GitSpawn 漏洞 是同一类问题的不同层面:GitSpawn 是仓库级别的攻击(恶意 .git/config),这篇论文关注的是 Agent 配置级别的供应链风险(恶意或不当的 skill/MCP/hook 配置)。
论文作者发布了完整的 instrument、corpus manifest、prompt 和所有 verdict,可以复现。