GitHub Actions中的Lychee链接检查操作存在任意代码注入漏洞 (CVE-2024-48908)

7 阅读2分钟

GitHub Actions中的Lychee链接检查操作存在任意代码注入漏洞 (CVE-2024-48908)

漏洞详情

基本信息
包名lycheeverse/lychee-action (GitHub Actions)
受影响版本< 2.0.2
修复版本2.0.2
漏洞类型代码注入 (CWE-94)
严重性中等 (CVSS 4.0 评分: 6.9)

漏洞描述

概述

lycheeverse/lychee-action的复合操作(action.yml)中的lychee-setup步骤发现了一个潜在的任意代码注入漏洞。

技术细节

该GitHub Action的输入变量inputs.lycheeVersion可以被利用来在Action的上下文中执行任意代码。这是一个典型的代码注入漏洞,其根本原因在于对用户提供的输入未进行充分的净化处理。

漏洞演示 (PoC)

以下是一个概念验证示例,展示了如何利用此漏洞:

- uses: lycheeverse/lychee@v2
  with:
    lycheeVersion: $(printenv >> $GITHUB_STEP_SUMMARY && echo "v0.16.1")

在这个例子中,lycheeVersion参数被设置为一个包含命令注入的字符串。当Action执行时,它会执行printenv >> $GITHUB_STEP_SUMMARY命令,将所有环境变量输出到工作流的步骤摘要中。虽然此示例仅为信息泄露,但攻击者完全可以利用此向量来执行更具破坏性的操作,如窃取密钥、修改代码或破坏仓库的CI/CD流程。由于注入的命令被执行的同时,Action本身仍会正常运行(在本例中,echo "v0.16.1"确保后续版本选择逻辑不受影响),这种攻击具有很高的隐蔽性,可能在不被察觉的情况下发生。

影响范围

该漏洞允许攻击者在受影响的GitHub Actions工作流中注入并执行任意代码。成功利用此漏洞可能导致:

  • 高保密性影响:攻击者可能访问并窃取环境变量、密钥和源代码等敏感信息。
  • 高完整性影响:攻击者可能修改构建产物、篡改代码或向仓库提交恶意更改。
  • 低可用性影响:根据CVSS指标,此漏洞本身不会直接导致系统可用性损失。

安全建议

强烈建议所有使用lycheeverse/lychee-action的用户立即将Action版本升级到2.0.2或更高版本,以修复此安全漏洞。

修复版本

  • 2.0.2

参考资料