GitHub Actions复合操作中的任意代码注入漏洞分析

本文详细分析了j178/prek-action复合操作中存在的任意代码注入漏洞,攻击者可通过恶意输入参数执行任意代码,泄露敏感信息并危及仓库安全。

漏洞概述

GitHub Actions复合操作j178/prek-action存在任意代码注入漏洞,攻击者可通过恶意构造的输入参数在操作上下文中执行任意代码。

受影响版本

  • 受影响版本:<= 1.0.5
  • 已修复版本:1.0.6

漏洞详情

攻击向量

GitHub Action的三个输入变量存在安全风险:

  • inputs.prek-version
  • inputs.extra_args
  • inputs.extra-args

攻击者可以利用这些变量在操作上下文中执行任意代码。

漏洞验证示例

1
2
3
4
5
6
- uses: j178/prek-action@v1.0.5
  with:
    prek-version: $(printenv >> $GITHUB_STEP_SUMMARY && echo "0.2.2")
    extra_args: '&& echo "MY_SECRET with a character is: ${MY_SECRET:0:1}a${MY_SECRET:1}" >> $GITHUB_STEP_SUMMARY && echo ""'
  env:
    MY_SECRET: ${{ secrets.MY_SECRET }}

上述示例将:

  1. 打印所有环境变量到工作流摘要
  2. 暴露MY_SECRET环境变量值
  3. 攻击者可能利用此向量危害目标仓库安全,且操作会正常运行而不被发现

影响评估

  • 严重等级:严重
  • CWE分类:CWE-94 - 代码生成控制不当(代码注入)
  • CVSS评分:10.0(严重)

CVSS v3基础指标

  • 攻击向量:网络
  • 攻击复杂度:低
  • 所需权限:低
  • 用户交互:无
  • 范围:已改变
  • 机密性影响:高
  • 完整性影响:高
  • 可用性影响:高

参考信息

  • GHSA ID:GHSA-pwf7-47c3-mfhx
  • 修复提交:j178/prek-action@6b7c6ef
  • 报告者:mondeja

安全建议

用户应立即升级到已修复版本1.0.6,以避免潜在的安全风险。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计