Claude Code GitHub Action漏洞:一个Issue劫持仓库(2026)
事件概述
安全研究人员RyotaK(来自GMO)发现Anthropic的Claude Code GitHub Action存在一个严重的供应链安全漏洞。攻击者仅需创建一个恶意的GitHub Issue,就能接管任何使用该Action的公共仓库。更严重的是,由于Anthropic自己的仓库也使用了相同的工作流,一个有效攻击可以将恶意代码推送到Action本身,并传播到所有下游项目。
这是一个典型的供应链攻击场景:一个广泛使用的开发工具存在漏洞,导致所有依赖它的项目都面临风险。对于使用AI辅助编码工具的开发团队而言,这一漏洞的影响不容忽视。
技术原理
GitHub Actions工作流机制
GitHub Actions是GitHub的CI/CD自动化平台,允许开发者在代码仓库中定义自动化工作流。工作流通过YAML文件配置,可以响应各种事件(如push、pull_request、issue等)。
Claude Code GitHub Action是Anthropic提供的一个Action,用于在CI/CD流程中集成Claude AI进行代码审查和代码生成。当仓库配置了该Action后,它可以自动响应Issue和PR事件,调用Claude进行智能处理。
漏洞根因分析
该漏洞的根本原因在于工作流配置中的输入验证缺失:
问题一:不安全的触发器配置。工作流配置了issue_comment和issues事件作为触发器,但未对这些事件的输入内容进行安全过滤。这意味着任何人都可以通过创建Issue或评论来触发工作流执行。
问题二:权限过大。工作流被授予了GITHUB_TOKEN的写入权限,包括代码推送权限。当攻击者通过注入payload控制工作流执行后,可以利用这些权限修改仓库代码。
问题三:缺乏沙箱隔离。Action执行环境缺乏足够的隔离,恶意输入可以直接影响后续的代码操作。
完整攻击链
第一步:侦察。攻击者识别使用Claude Code GitHub Action的公共仓库。可以通过搜索GitHub上的工作流文件来发现目标。
第二步:注入。攻击者在目标仓库创建一个Issue,Issue内容中嵌入精心构造的payload。这个payload设计为在Claude处理时被解释为可执行的代码或命令。
第三步:触发。GitHub Actions检测到新Issue事件,自动触发工作流。工作流调用Claude Code Action处理该Issue。
第四步:执行。Claude在处理Issue时,将payload作为代码执行。由于工作流具有GITHUB_TOKEN写入权限,攻击者可以利用此权限推送到仓库。
第五步:持久化。攻击者将恶意代码推送到仓库的main分支,实现了对仓库的持久化控制。如果该仓库是其他项目的依赖,则攻击影响进一步扩散。
Anthropic官方仓库的特殊风险
由于Anthropic自己的Claude Code Action仓库也使用了相同的工作流配置,一个成功的攻击可以:
- 将恶意代码直接推送到Claude Code Action仓库
- 修改Action的核心逻辑
- 所有引用该Action的下游项目在下次CI/CD运行时自动加载恶意代码
- 形成大规模的供应链攻击
影响范围评估
- 受影响仓库:所有使用Claude Code GitHub Action的公共仓库
- 关键风险:Anthropic官方仓库本身也受影响
- 攻击门槛:极低(仅需创建一个Issue)
- 权限要求:无(任何人可创建Issue)
- 影响程度:严重(可接管仓库、注入恶意代码)
实战指南
检查你的仓库
方法一:手动检查
# 检查仓库是否使用了Claude Code GitHub Action
grep -r "anthropics/claude-code-action" .github/workflows/
# 检查所有工作流文件
ls -la .github/workflows/
cat .github/workflows/*.yml | grep -i "claude\|anthropic"
方法二:使用GitHub API
# 列出仓库的工作流文件
gh api repos/OWNER/REPO/contents/.github/workflows --jq '.[].name'
# 检查特定工作流内容
gh api repos/OWNER/REPO/contents/.github/workflows/main.yml --jq '.content' | base64 -d | grep -i claude
方法三:批量扫描
#!/bin/bash
# 批量检查组织内所有仓库
ORG="your-org"
gh repo list $ORG --limit 100 --json name -q '.[].name' | while read repo; do
result=$(gh api repos/$ORG/$repo/contents/.github/workflows 2>/dev/null | grep -c "claude-code-action")
if [ "$result" -gt 0 ]; then
echo "⚠️ $repo uses Claude Code Action"
fi
done
紧急缓解措施
方案一:禁用受影响的工作流
# 在 .github/workflows/ 中临时禁用相关工作流
# 方法:重命名文件或添加条件禁用
# 重命名工作流文件
mv .github/workflows/claude-review.yml .github/workflows/claude-review.yml.disabled
方案二:添加安全检查
# 修改工作流,添加触发条件限制
name: Secure Claude Code
on:
issue_comment:
types: [created]
# 仅允许仓库成员触发
if: github.event.issue.author_association == 'MEMBER' || github.event.issue.author_association == 'OWNER'
jobs:
claude-review:
runs-on: ubuntu-latest
# 限制权限范围
permissions:
contents: read
issues: read
pull-requests: read
steps:
- uses: anthropics/claude-code-action@v1
with:
# 不传递敏感信息
# 确保输入经过验证
方案三:使用固定版本
# 避免使用@main或@latest,使用固定版本
- uses: anthropics/[email protected] # 固定版本
# 而不是
- uses: anthropics/claude-code-action@main # 不安全
安全配置最佳实践
# 安全的GitHub Actions配置模板
name: Secure CI/CD
on:
push:
branches: [main]
pull_request:
branches: [main]
# 不要在issue_comment上触发
# 不要在issues事件上触发
permissions:
contents: read # 最小权限
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false # 不保存凭证
- name: Security Scan
run: |
# 在隔离环境中运行安全扫描
# 不直接使用用户输入
监控和检测
# 检查仓库是否有异常提交
git log --oneline --since="2026-06-01" --author="github-actions[bot]"
# 检查是否有异常的分支创建
git branch -a | grep -v "main\|master\|develop"
# 检查GitHub审计日志
# 访问 Organization Settings > Audit log
# 搜索 "workflow_run" 或 "create" 事件
# 使用GitHub API检查异常活动
gh api repos/OWNER/REPO/commits --jq '.[].commit.author.name' | sort | uniq -c | sort -rn
变现方式
安全审计服务
GitHub Actions安全审计:为企业全面审查CI/CD配置的安全性,识别潜在的供应链风险。单次服务费用$3,000-$10,000,包括详细的审计报告和修复建议。
供应链安全评估:全面评估企业依赖链的安全性,包括GitHub Actions、npm包、Docker镜像等。项目费用$5,000-$20,000。
安全培训:为企业开发团队提供GitHub Actions安全培训,教授安全配置和最佳实践。$500-$1,500/场,线上或线下均可。
工具开发
安全扫描工具:开发GitHub Actions安全扫描器,自动检测不安全的工作流配置。开源版本吸引用户,商业版本提供高级功能和CI/CD集成。SaaS订阅$50-$200/月。
自动化修复工具:提供自动修复不安全GitHub Actions配置的工具,分析现有配置并生成安全的替代方案。按扫描次数收费或SaaS订阅。
内容创作
技术文章:撰写供应链安全深度分析文章,通过技术博客和媒体平台发布。广告和赞助收入$200-$800/篇,加上技术赞助可达$1,000-$3,000/篇。
漏洞赏金:如果发现新的安全问题,向Anthropic报告漏洞获取赏金。$1,000-$10,000不等,取决于漏洞严重程度。
视频教程:制作GitHub Actions安全配置教程,在YouTube/B站发布。月收入$500-$2,000。
修复建议
立即行动(24小时内)
- 审查工作流:检查所有GitHub Actions工作流的触发器配置
- 限制权限:为每个工作流设置最小必要的GITHUB_TOKEN权限
- 验证输入:在处理外部输入(Issue、PR评论)前进行安全验证
短期行动(72小时内)
- 更新Action版本:将所有第三方Actions更新到最新安全版本
- 启用依赖审查:在GitHub中启用依赖审查功能
- 监控告警:设置异常行为监控,及时发现供应链攻击
长期策略
- 安全开发生命周期:将安全检查集成到CI/CD流程中
- 依赖审计:定期审计所有第三方Actions的安全性
- 最小权限原则:始终为工作流配置最小必要的权限
- 代码审查:所有工作流配置变更必须经过代码审查
总结
Claude Code GitHub Action的供应链漏洞揭示了CI/CD自动化平台的安全风险。一个简单的Issue就能导致仓库被接管,这对所有使用GitHub Actions的组织都是警示。建议立即审查并加固你的CI/CD配置,实施最小权限原则,并建立持续的安全监控机制。
相关资源
- GitHub Actions安全文档:https://docs.github.com/en/actions/security-guides
- Anthropic安全公告:https://anthropic.com/security
- OWASP供应链安全:https://owasp.org/www-project-dependency-check/
- SLSA框架:https://slsa.dev/
本文最后更新于2026年06月05日
评论