CVE-2026-22869Eigent是一个多代理工作流系统,其CI工作流文件(.github/workflows/ci.yml)存在严重的安全漏洞。该漏洞允许来自fork仓库的拉取请求在具有仓库写权限的上下文中执行任意代码。攻击者可以通过向eigent-ai/eigent仓库提交恶意拉取请求,利用pull_request_target触发器和checkout动作的组合,在CI环境中获得代码执行权限。此漏洞可被用于窃取敏感凭据、发布恶意评论、推送未经授权的代码变更,甚至创建恶意发布版本,对使用该仓库的所有用户构成严重威胁。
该漏洞源于GitHub Actions工作流中pull_request_target触发器的错误使用。工作流配置使用pull_request_target而非pull_request触发器,导致工作流在主仓库的上下文中执行,具有完整的写权限。当工作流执行时使用actions/checkout动作拉取拉取请求的代码时,如果PR来自fork仓库,则会在具有写权限的上下文中执行来自不可信来源的代码。攻击者可以利用此漏洞:1) 在CI环境中读取GITHUB_TOKEN和其他敏感环境变量;2) 通过工作流权限执行仓库操作如推送代码、发布评论、创建发布等;3) 窃取存储在secrets中的凭据信息。修复方案包括:使用pull_request触发器而非pull_request_target,或在checkout时使用persist-credentials:false并避免脚本执行,或使用path filters限制触发条件。