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

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-22871 基础信息
漏洞信息
                                        # GuardDog 路径遍历漏洞导致任意文件覆盖和RCE

## 概述
GuardDog 是一款用于检测恶意 PyPI 包的命令行工具。在 2.7.1 之前版本中,`safe_extract()` 函数存在路径遍历漏洞,可导致任意文件被写入目标解压目录之外的位置。

## 影响版本
2.7.1 之前的所有版本。

## 细节
`safe_extract()` 函数未能正确校验归档文件中的文件路径,攻击者可构造包含 `../` 的恶意路径,使文件被释放到解压目录以外的任意位置,实现任意文件覆盖。

## 影响
攻击者可利用此漏洞覆盖系统关键文件,导致任意文件覆盖和远程代码执行(RCE),危及运行 GuardDog 的系统安全。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
GuardDog Path Traversal Vulnerability Leads to Arbitrary File Overwrite and RCE
来源:美国国家漏洞数据库 NVD
漏洞描述信息
GuardDog is a CLI tool to identify malicious PyPI packages. Prior to 2.7.1, there is a path traversal vulnerability exists in GuardDog's safe_extract() function that allows malicious PyPI packages to write arbitrary files outside the intended extraction directory, leading to Arbitrary File Overwrite and Remote Code Execution on systems running GuardDog. This vulnerability is fixed in 2.7.1.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
对路径名的限制不恰当(路径遍历)
来源:美国国家漏洞数据库 NVD
漏洞标题
GuardDog 路径遍历漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
GuardDog是GuardDog开源的一个 CLI 工具,允许识别恶意PyPI包。 GuardDog 2.7.1之前版本存在路径遍历漏洞,该漏洞源于safe_extract()函数存在路径遍历,可能导致任意文件覆盖和远程代码执行。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
路径遍历
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2026-22871 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-22871 的情报信息
  • 标题: Path Traversal Vulnerability Leads to Arbitrary File Overwrite and RCE · Advisory · DataDog/guarddog · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ## 关键信息
    
    ### 漏洞概述
    - **描述**: GuardDog的safe_extract()函数存在路径遍历漏洞,允许恶意PyPI包在GuardDog运行的系统上触发任意文件覆盖和远程代码执行。
    - **CVE-ID**: CVE-2026-22871
    - **分类**: CWE-22 (路径名到受限目录的不当限制)
    - **等级**: 高
    
    ### 影响版本和修复版本
    - **受影响版本**: 2.7.0及以下
    - **修复版本**: 2.7.1
    
    ### 漏洞代码
    **文件**: guarddog/utils/archives.py
    
    ```python
    elif zipfile.is_zipfile(source_archive):
        with zipfile.ZipFile(source_archive, "r") as zip:
            for file in zip.namelist():
                # 注:zip.extract可清理恶意文件名
                # 如目录遍历尝试 这不是
                # zip提取的情况
                zip.extract(file, path=os.path.join(target_directory, file)) # ✗ 易受攻击的
    ```
    
    ### 根因
    - 评论关于 zip.extract() 在最初时误导了我;然后我注意到了 os.path.join() 的调用。
    - 漏洞源于Python的 zipfile.ZipFile.extract() API的不正确使用:
        - path参数应该是目标目录,而不是完整的文件路径
        - extract() 自动将成员名附加到路径
        - 通过传递 os.path.join(target_directory, file),GuardDog导致成员名被附加两次
        - 这破坏了Zipfile内置的路径遍历清理
    
    ### 攻击载体
    1. 攻击者创建路径遍历文件名的恶意wheel
    2. 上传到PyPI或直接分发:
    3. 包扫描:guarddog pypi scan malicious-pkg
    4. GuardDog下载解压包
    5. 恶意文件写入任意位置
    6. 可以实现代码执行
    
    ### 影响
    影响取决于GuardDog的运行方式和环境。
    
    ### 关键场景
    1. **即时代码执行**
        - 写入 ~/.bashrc → 在下次shell中执行
        - 写入 ~/.profile → 登录时执行
    2. **持久后门**
        - 写入 ~/.ssh/authorized_keys → SSH访问
        - 写入 /etc/cron.d/malicious → 定时执行(如果root)
        - 写入systemd用户服务 → 持续执行
    
    ### 时间线
    - **2026-01-05**: 发现
    - **2026-01-05**: 报告
    - **建议披露**: 30天
    
    ### 记录
    - **已报告**: Charbel (dwbruijn)
                                            
    Path Traversal Vulnerability Leads to Arbitrary File Overwrite and RCE · Advisory · DataDog/guarddog · GitHub
  • 标题: Merge pull request #644 from ejortega/zip-duplicate-path · DataDog/guarddog@9aa6a72 · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            从这个网页截图中可以获取到以下关于漏洞的关键信息:
    
    - **Commit**:
      - `Commit 9aa6a72` 修复了与 zip 文件提取路径重复相关的问题。
    
    - **Pull Request**:
      - `Merge pull request #644` 从 `ejortega/zip-duplicate-path` 分支合并。
      - 修复内容描述: `fix: duplicate path in zip extraction`
    
    - **Code Change**:
      - 文件路径: `guarddog/utils/archives.py`
      - 改动部分:
        ```python
        # 原代码:
        zip.extract(file, path=os.path.join(target_directory, file))
        
        # 新代码:
        zip.extract(file, path=target_directory)
        ```
    
    - **Vulnerability Description**:
      - 注释部分说明了修复的目的: `zip.extract` 会在文件名中包含恶意路径的情况下清理掉,以防止目录遍历攻击。
    
    总结来看,这个 Commit 修复了一个可能允许攻击者通过恶意构造的 zip 文件进行目录遍历的漏洞。
                                            
    Merge pull request #644 from ejortega/zip-duplicate-path · DataDog/guarddog@9aa6a72 · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-22871
四、漏洞 CVE-2026-22871 的评论

暂无评论


发表评论