统计 3,715 个公开 Skill:近三成不受限 Bash 授权根本没用上
公开 Agent Skill 调查项目 agent-skills-state-2026 在 10 月 26 日发布跟进报告,分析在 allowed-tools 里申请不受限 Bash(裸 `Bash` 或 `Bash(*)`,技能激活时可免确认执行任意命令)的技能实际做了什么。在 392 个仓库的 3,715 个技能中,29.9% 既没写 shell 命令也不带脚本;写了命令的 2,545 个技能里,55.7% 只用到三个或更少的不同命令;34.7% 记录或附带了至少一种较高风险行为。
安装或拉取包
直接 HTTP 调用
递归删除/丢弃 git 改动
eval 执行拼接字符串
推送或发布
数据来自 agent-skills-state-2026 的 10 月 26 日跟进报告
要点
- 较高风险行为中最常见的是安装或拉取包(15.7%)、直接 HTTP 调用(14.4%)、递归删除或丢弃 git 改动(9.2%)、用 eval 执行拼接字符串(8.4%)、推送或发布(5.0%)
- 首期报告显示,2,621 个带技能的仓库中 15.5% 至少有一个技能申请了不受限 Bash
- 作者人工抽查 60 个技能,授权判定 60 个全对,风险行为标记 20 个中 17 个正确(85.0%);规则在同一样本上调整过,数字可能偏乐观
- 建议:没有命令和脚本的技能直接删掉 Bash,其余改成只允许文中出现的命令,如 `Bash(git status:*)`,并固定所装包的版本、每次更新后重新审查
为什么值得关注
团队引入社区 Skill 时,可以照这份清单检查 allowed-tools,把权限收窄到具体命令;这一做法与模型无关,自部署环境同样适用。注意报告只分析了页面和技能目录内的脚本,不代表 Agent 运行时实际执行的命令。
配套实验
已验证
检查 12/12 通过
GitHub Actions 实际运行 · Python 3.12.15 · 耗时 不到 0.1s
离线审查 SKILL.md:找出不受限 Bash 授权并给出收窄规则
参考 agent-skills-state-2026 的 10 月 26 日报告,用 8 个内置 mock 技能演示:解析前言、识别裸 Bash / Bash(*) 授权、找出没用上的授权、标记较高风险命令,并按正文命令给出 Bash(命令:*) 形式的收窄建议。
结论5 个不受限 Bash 授权中 1 个可直接删除,其余可按命令收窄
… [PASS] no-frontmatter: parse='missing' [PASS] formatter: 收窄后的规则覆盖了正文中的全部命令 [PASS] release: 收窄后的规则覆盖了正文中的全部命令 [PASS] bootstrap: 收窄后的规则覆盖了正文中的全部命令 [PASS] env-loader: 收窄后的规则覆盖了正文中的全部命令 METRIC: 技能总数 = 8 个 METRIC: 前言无法解析或缺失 = 2 个 METRIC: 不受限 Bash 授权 = 5 个 METRIC: 授权未用上 = 1 个 METRIC: 带较高风险命令 = 4 个 METRIC: 不受限授权中未用上的比例 = 20.0 % METRIC: 用到的不同命令不超过 3 个的比例 = 75.0 % RESULT: 5 个不受限 Bash 授权中 1 个可直接删除,其余可按命令收窄
python main.py
查看代码与内网复现步骤 →
来源
原文
Skills with unscoped Bash (October 2026 follow-up)
GitHub · github.com · 2026-10-26
原文
State of public agent skills and MCP servers, October 2026
GitHub · github.com · 2026-10-13
### [统计 3,715 个公开 Skill:近三成不受限 Bash 授权根本没用上]({{URL}})
公开 Agent Skill 调查项目 agent-skills-state-2026 在 10 月 26 日发布跟进报告,分析在 allowed-tools 里申请不受限 Bash(裸 `Bash` 或 `Bash(*)`,技能激活时可免确认执行任意命令)的技能实际做了什么。在 392 个仓库的 3,715 个技能中,29.9% 既没写 shell 命令也不带脚本;写了命令的 2,545 个技能里,55.7% 只用到三个或更少的不同命令;34.7% 记录或附带了至少一种较高风险行为。
- 较高风险行为中最常见的是安装或拉取包(15.7%)、直接 HTTP 调用(14.4%)、递归删除或丢弃 git 改动(9.2%)、用 eval 执行拼接字符串(8.4%)、推送或发布(5.0%)
- 首期报告显示,2,621 个带技能的仓库中 15.5% 至少有一个技能申请了不受限 Bash
- 作者人工抽查 60 个技能,授权判定 60 个全对,风险行为标记 20 个中 17 个正确(85.0%);规则在同一样本上调整过,数字可能偏乐观
- 建议:没有命令和脚本的技能直接删掉 Bash,其余改成只允许文中出现的命令,如 `Bash(git status:*)`,并固定所装包的版本、每次更新后重新审查
**为什么值得关注**:团队引入社区 Skill 时,可以照这份清单检查 allowed-tools,把权限收窄到具体命令;这一做法与模型无关,自部署环境同样适用。注意报告只分析了页面和技能目录内的脚本,不代表 Agent 运行时实际执行的命令。
来源:[Skills with unscoped Bash (October 2026 follow-up)](https://github.com/alexar76/agent-skills-state-2026/blob/main/docs/skills-with-unscoped-bash.md);[State of public agent skills and MCP servers, October 2026](https://github.com/alexar76/agent-skills-state-2026)