支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-22869 基础信息
漏洞信息
                                        # Eigent pull_request_target 远程代码执行漏洞

## 概述  
Eigent 的 CI 工作流文件 `.github/workflows/ci.yml` 存在严重安全漏洞,允许攻击者在拉取请求(PR)来自 fork 仓库时执行任意代码。

## 影响版本  
所有使用 `.github/workflows/ci.yml` 且配置为 `pull_request_target` 触发器并检出不受信任 PR 代码的版本。

## 细节  
- 漏洞位于 CI 工作流 `.github/workflows/ci.yml`。  
- 使用 `pull_request_target` 事件触发工作流,该事件在 PR 来自 fork 时仍具有仓库写权限和敏感环境变量访问权限。  
- 工作流在触发后直接检出并执行来自 PR 的代码(使用 `actions/checkout`),导致执行不受信任的代码。  
- 攻击者可构造恶意 PR,利用此行为窃取 GitHub 凭据(如 `GITHUB_TOKEN`)、提交代码、发布版本或在 PR 中发布恶意评论。

## 影响  
攻击者可实现任意代码执行,进而:  
- 窃取仓库密钥和身份凭证  
- 未经授权提交代码或创建恶意发布  
- 操控 CI/CD 流程以持久化攻击  
- 危害项目完整性和安全性
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
Eigent Allows Arbitrary Code Execution via pull_request_target CI Workflow
来源:美国国家漏洞数据库 NVD
漏洞描述信息
Eigent is a multi-agent Workforce. A critical security vulnerability in the CI workflow (.github/workflows/ci.yml) allows arbitrary code execution from fork pull requests with repository write permissions. The vulnerable workflow uses pull_request_target trigger combined with checkout of untrusted PR code. An attacker can exploit this to steal credentials, post comments, push code, or create releases.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
对生成代码的控制不恰当(代码注入)
来源:美国国家漏洞数据库 NVD
漏洞标题
Eigent 代码注入漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
Eigent是Eigent AI开源的一个多代理工作流程桌面应用程序。 Eigent存在代码注入漏洞,该漏洞源于CI工作流使用pull_request_target触发器并检出不受信任的PR代码,可能导致任意代码执行。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
代码注入
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2026-22869 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-22869 的情报信息
  • 标题: fix(security): Prevent arbitrary code execution in CI workflow by ColeMurray · Pull Request #837 · eigent-ai/eigent · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ### 关键信息
    
    - **漏洞描述**:  
      - 类型:任意代码执行
      - 触发条件:通过fork pull request触发CI流程
    
    - **漏洞细节**:  
      - 问题:使用`pull_request_target`触发器结合`actions/checkout`导致write权限和secrets访问  
      - 恶意代码通过`github.event.pull_request.head.sha`注入并执行  
    
    - **攻击向量**:  
      1. 攻击者fork仓库  
      2. 添加恶意`node_modules`中的脚本  
      3. 提交PR触发CI  
      4. `npx`执行攻击者代码代替正常工具  
      5. 代码以仓库写权限运行  
    
    - **影响**:  
      - 在CI环境中执行任意代码  
      - 提取git runner凭证  
      - 利用凭证在PR上留言  
      - 将数据泄露到外部服务器  
    
    - **修复措施**:  
      - CI流程拆分为`ci.yml`和`lint-markdown.yml`,分别处理不同权限和触发条件  
      - 使`pull_request`触发器以只读权限运行fork PR,隔离恶意代码  
    
    - **额外改进**:  
      - 更新GitHub Actions版本  
      - 固定`markdownlint-cli`版本防止供应链攻击  
      - 添加安全注释说明改动原因
                                            
    fix(security): Prevent arbitrary code execution in CI workflow by ColeMurray · Pull Request #837 · eigent-ai/eigent · GitHub
  • 标题: Security PoC: Demonstrate CI workflow vulnerability by ColeMurray · Pull Request #836 · eigent-ai/eigent · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ## 关键信息总结
    
    ### 漏洞概述
    - **类型**: CI工作流漏洞
    - **漏洞点**: 使用`pull_request_target`事件并在`on`字段中控制,且检查出不受信任的PR代码
    - **风险**: 攻击者可以执行任意代码,窃取GitHub令牌和其他机密,推送恶意代码,创建包含恶意软件的发布,以及危及下游用户
    
    ### 攻击向量示例
    - 具体说明了攻击者如何利用漏洞通过配置文件`.markdownlintrc.js`执行任意JavaScript来利用`markdownlint-cli`工具
    
    ### 解决方案
    1. 使用`pull_request`事件替换`pull_request_target`
    2. 不在使用`pull_request_target`时检查不受信任的PR代码
    3. 使用`actions/checkout`行动时,不包含`ref`参数,仅检查基本分支
    
    ### 关联参考资料
    - [GitHub Security Lab: Keeping your GitHub Actions and workflows secure](链接到相关资源)
    ```
    
    此总结精炼地涵盖了截图中关于此CI工作流安全漏洞的关键信息,如问题的本质、潜在攻击途径以及如何进行修复和预防。
                                            
    Security PoC: Demonstrate CI workflow vulnerability by ColeMurray · Pull Request #836 · eigent-ai/eigent · GitHub
  • 标题: Arbitrary Code Execution via pull_request_target CI Workflow · Advisory · eigent-ai/eigent · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ## 关键漏洞信息
    
    ### 漏洞标题
    - **Arbitrary Code Execution via pull_request_target CI Workflow**
    
    ### 漏洞标识符
    - **GHSA ID:** GHSA-gvh4-93cq-5xxp
    - **CVE ID:** CVE-2026-22869
    
    ### 漏洞严重性
    - **CVSS v3 base metrics:** 10.0/10
    - **Attack Vector:** Network
    - **Attack Complexity:** Low
    - **Privileges Required:** None
    - **User Interaction:** None
    - **Scope:** Changed
    - **Confidentiality:** High
    - **Integrity:** High
    - **Availability:** None
    
    ### 影响文件
    - `.github/workflows/ci.yml` (GitHub Actions)
    
    ### 受影响版本
    - `< 2026-01-13`
    
    ### 补丁版本
    - `None`
    
    ### 漏洞描述
    - **Summary:** CI工作流程(`.github/workflows/ci.yml`)中的一个严重安全漏洞允许从具有仓库写权限的fork拉取请求中执行任意代码。攻击者可以利用这一点窃取凭据、发布评论、推送代码或创建发布。
    
    ### 漏洞细节
    - **Vulnerable Workflow:** 使用 `pull_request_target` 触发器结合检出不受信任的PR代码。
    - **Vulnerable CI Config:** 
        ```yaml
        on:
          pull_request_target: # 授予写权限 + 秘密访问
            branches:
              - main
        jobs:
          job2:
            ...
            - run: npx markdownlint-cli  # 执行来自攻击者的代码
        ```
    - **Vulnerable File:** `.github/workflows/ci.yml` (lines 75-81)
    - **Vulnerable Event Privileges:** Pull_request_target 事件运行时具有写入仓库的权限、访问仓库秘密的权限、具有提升权限的 GITHUB_TOKEN。
    
    ### 证明概念 (PoC)
    - **Steps:** 
        1. 叉仓库
        2. 在 `node_modules/.bin/markdownlint-cli` 中创建带有提取凭据恶意代码。
        3. 创建任意 `.md` 文件触发工作流程。
        4. 向第三方 `eigent-ai/eigent` 开发一个PR。
        5. CI工作流程将执行带有写权限的恶意脚本。
    
    - **PoC PR:** #836
    - **PoC Impact:** 
        - 执行CI环境中的任意JavaScript代码。
        - 提取Git身份验证头。
        - 使用凭据对PR进行评论。
        - 将数据泄露到外部服务器。
    
    ### 影响
    - **Severity:** High
    - **Impact:**
        1. 窃取凭据。
        2. 修改仓库内容。
        3. 供应链攻击。
        4. 数据泄露。
      
    ### 提交修复
    - **Fix:** #837
                                            
    Arbitrary Code Execution via pull_request_target CI Workflow · Advisory · eigent-ai/eigent · GitHub
  • 标题: fix(security): Prevent arbitrary code execution in CI workflow (#837) · eigent-ai/eigent@bf02500 · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ## 关键信息总结
    
    ### 安全更新
    - **提交ID:** bf02500
    - **提交作者:** Wending-Fan
    - **提交日期:**上周
    - **提交描述:** 防止CI工作流中任意代码执行 (#837)
    
    ### 文件变更
    - **变更文件数量:** 2 个文件(+.github/workflows/ci.yml 和 .github/workflows/lint-markdown.yml)
    - **总变更行数:** +40 -32 
    
    ### 主要变更点
    - `.github/workflows/ci.yml`
      - 删除了“job1: Check Not Allowed File Changes”工作。
      - 添加了“check-files: Check Not Allowed File Changes”工作并修改了其路径过滤逻辑。
      - 修改了“Comment About Changes We Can't Accept”工作的动作版本和错误处理逻辑。
      - 删除了“Check Not Linted Markdown”工作。
      - 修改了“Lint Markdown”工作的触发逻辑和执行步骤。
      
    - `.github/workflows/lint-markdown.yml`
      - 添加了新的Markdown校验工作流,包含对请求分支和路径的限制,确保代码检出和执行的权限为只读,防止恶意请求的注入。
                                            
    fix(security): Prevent arbitrary code execution in CI workflow (#837) · eigent-ai/eigent@bf02500 · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-22869
四、漏洞 CVE-2026-22869 的评论

暂无评论


发表评论