GitHub Action j178/prek-action 存在任意代码注入高危漏洞

本文详细披露了GitHub Action j178/prek-action中的一个高危漏洞。该漏洞允许攻击者通过特定的输入参数在Action执行上下文中注入并执行任意代码,可能导致敏感信息泄露和存储库安全受损。

漏洞详情

严重性等级: 高危

发布状态: 已于2025年9月27日发布,并于2025年9月29日更新

影响范围: j178/prek-action (GitHub Actions)

受影响版本: <= 1.0.5

已修复版本: 1.0.6

描述

概述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-94(代码生成的不当控制)

参考链接

  • GHSA-pwf7-47c3-mfhx
  • j178/prek-action@6b7c6ef

安全指标

CVSS 总体评分: 10.0 (高危)

CVSS v3 基本指标:

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

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

弱点信息

弱点: CWE-94 - 代码生成的不当控制(‘代码注入’) 该产品使用来自上游组件的外部影响输入来构造部分或全部代码段,但未对可能修改预期代码段语法或行为的特殊元素进行中和或错误中和。

标识符

GHSA ID: GHSA-pwf7-47c3-mfhx

CVE ID: 暂无已知CVE编号

源代码仓库: j178/prek-action

致谢

报告者: mondeja

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