CVE-2024-48908:lychee link checking action中复合操作的任意代码注入漏洞
漏洞描述
lychee link checking action 是一个用于检查Markdown、HTML和文本文件中链接的GitHub Action。在2.0.2版本之前,其复合操作配置文件action.yml中的lychee-setup部分存在一个任意代码注入漏洞的潜在攻击面。
该漏洞的根源在于,GitHub Action的输入变量inputs.lycheeVersion可以被用来在操作的上下文中执行任意代码。
技术细节与影响
漏洞原理
- 攻击向量:该漏洞属于代码注入类型。攻击者可以通过精心构造
lycheeVersion参数的值,注入并执行恶意命令。 - 利用条件:攻击者需要有能力修改或影响使用此Action的工作流配置文件(如
.github/workflows/*.yml)中的lycheeVersion输入值。 - 隐蔽性:由于该操作在注入代码后仍能继续正常运行,因此攻击行为可能不易被察觉。
概念验证
一个简单的概念验证示例如下,它演示了如何利用此漏洞:
|
|
上述示例会将所有环境变量输出到工作流的摘要中。虽然此示例仅用于演示,但潜在的危害远不止于此。攻击者可以利用此向量执行更危险的命令,从而完全危害目标代码仓库的安全。
安全影响
- 影响范围:使用该Action的代码仓库,如果其工作流配置中
lycheeVersion参数的值来自不可信或外部可控的源,则存在风险。 - 潜在后果:攻击者可窃取仓库密钥、污染构建流程、窃取代码或进行其他恶意活动。
- 严重等级:根据评估,此漏洞的总体影响被评定为 中等。
修复与解决方案
此漏洞已在lycheeverse/lychee-action的2.0.2版本中得到修复。 对于用户而言,最直接的缓解措施是:
- 立即升级:确保在你的GitHub工作流中,将lychee action的引用更新至v2.0.2或更高版本。
1 2 3- uses: lycheeverse/lychee-action@v2.0.2 # 使用固定版本 # 或使用主版本标签,但确保其指向已修复的版本 - uses: lycheeverse/lychee-action@v2 - 审查工作流:检查项目中所有使用此Action的工作流文件,确认
lycheeVersion或其他输入的来源是否安全。
相关资源与参考
- 官方公告:GitHub安全公告 GHSA-65rg-554r-9j5x
- CVE记录:国家漏洞数据库 NVD - CVE-2024-48908
- 修复提交:可查看GitHub上的相关修复提交记录以了解技术细节。