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

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-22249 基础信息
漏洞信息
                                        # Docmost 任意文件写入漏洞(ZipSlip)

## 概述
Docmost 在 0.21.0 到 0.24.0 之前的版本中,因导入功能缺乏文件名验证,存在任意文件写入漏洞(ZipSlip)。

## 影响版本
0.21.0 ≤ 版本 < 0.24.0

## 细节
在文件 `apps/server/src/integrations/import/utils/file.utils.ts` 中,处理 ZIP 导入时未对解压后的文件名进行安全校验,攻击者可利用路径遍历构造恶意文件路径,实现任意文件写入。

## 影响
攻击者可通过特制的 ZIP 文件实现任意文件写入,可能导致远程代码执行或服务器文件系统被篡改。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
Docmost affected by an Arbitrary File Write via Zip Import Feature (ZipSlip)
来源:美国国家漏洞数据库 NVD
漏洞描述信息
Docmost is an open-source collaborative wiki and documentation software. From 0.21.0 to before 0.24.0, Docmost is vulnerable to Arbitrary File Write via Zip Import Feature (ZipSlip). In apps/server/src/integrations/import/utils/file.utils.ts, there are no validation on filename. This vulnerability is fixed in 0.24.0.
来源:美国国家漏洞数据库 NVD
CVSS信息
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H
来源:美国国家漏洞数据库 NVD
漏洞类别
对路径名的限制不恰当(路径遍历)
来源:美国国家漏洞数据库 NVD
漏洞标题
Docmost 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
Docmost是Docmost开源的一个开协作维基和文档软件。 Docmost 0.24.0之前版本存在安全漏洞,该漏洞源于ZIP导入功能对文件名缺少验证,可能导致任意文件写入。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2026-22249 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-22249 的情报信息
  • 标题: fix: zip extraction validation by Philipinho · Pull Request #1753 · docmost/docmost · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            - **Pull Request Title**: fix: zip extraction validation #1753
    - **Merged by**: Philipinho
    - **Date Merged**: Dec 1, 2025
    - **Commits**: 2
    - **Files Changed**: 1
    
    ### Summary by CodeRabbit
    - **Bug Fixes**:
      - Improved robustness of ZIP import: entry names are normalized and validated, invalid or malformed entries are skipped with warnings.
      - Added path-traversal protection so archived entries outside the target directory are ignored, preventing unsafe extractions.
      - Extraction flow now drops problematic entries early, reducing failed imports and improving overall upload safety.
    
    ### WalkerRabbit Walkthrough
    - Added runtime ZIP entry name normalization and validation, skips invalid or path-traversal entries with console warnings, and ensures entries outside the target directory or named under `__MACOSX` are not extracted.
    
    ### Changes
    - **Cohort / File(s)**: apps/server/src/integrations/import/utils/file.util.ts
    - **Summary**: Normalize entry names, validate with `yauzl.validateFileName`, skip invalid entries with console warnings, prevent path traversal, and drop entries outside the target or under `__MACOSX`.
    
    ### Estimated Code Review Effort
    - **Complexity**: 2 (Simple)
    - **Time**: ~10 minutes
    - **Tasks**:
      - Verify `yauzl.validateFileName` usage and return semantics.
      - Confirm path resolution check prevents path traversal across platforms.
      - Ensure skipping entries doesn't break downstream import assumptions or logging clarity.
    
    ### Pre-merge Checks and Finishing Touches
    - Passed checks: 3 passed
    
    ### Poem
    - Fun poem about zip file handling
    
    ### Additional Information
    - Referenced in multiple other commits and projects after merging
    - Branch `fix/zip-validation` deleted last month
                                            
    fix: zip extraction validation by Philipinho · Pull Request #1753 · docmost/docmost · GitHub
  • 标题: Release v0.24.0 · docmost/docmost · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            **关键漏洞信息:**
    
    - **版本:** v0.24.0
    - **发布日期:** 2025年12月13日
    - **安全提示:** 
      - 此版本包含安全修复。建议升级到v0.24.0。
    
    **相关提交:**
    
    - 自上次发布以来对主分支的22次提交。
    - 版本哈希: 0fe1459
    
    **更新详情:**
    
    - AI搜索(支持OpenAI, Gemini, Ollama)(企业版)
    - API密钥管理(企业版)
    - 文本背景高亮颜色
    - 锚点链接
    - CJK搜索支持Typesense搜索引擎(企业版)
    - 性能改进和错误修复。
                                            
    Release v0.24.0 · docmost/docmost · GitHub
  • 标题: Arbitrary File Write via Zip Import Feature (ZipSlip) · Advisory · docmost/docmost · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            以下是该网页截图中的关键漏洞信息,以简洁的Markdown格式呈现:
    
    ```markdown
    ## 漏洞概览
    - **漏洞类型**: 通过Zip导入功能进行任意文件写入 (ZipSlip)
    - **发布者**: Philipinho
    - **报告编号**: GHSA-54pm-hqxm-54wg
    - **发布日期**: 4天前
    
    ## 关键信息
    - **安全等级**: 高 (7.1/10)
    - **受影响版本**: v0.21.0以上
    - **修复版本**: v0.24.0
    
    ## CVSS V3 指标
    - **攻击向量**: 网络
    - **攻击复杂度**: 低
    - **所需权限**: 低
    - **用户交互**: 无
    - **影响范围**: 不变
    - **机密性影响**: 无
    - **完整性影响**: 低
    - **可用性影响**: 高
    
    ## 漏洞详情
    Docmost 存在利用 Zip 导入功能进行任意文件写入的安全漏洞 (ZipSlip)。问题出在文件zip解压缩处理上:apps/server/src/integrations/import/utils/file.utils.ts,没有对文件名进行任何验证。
    
    ## 漏洞影响
    Zip Slip 漏洞可让攻击者在文件系统上创建或覆盖现有文件。对于web应用,攻击者可能通过在应用目录下放置web shell实现代码执行,因为DocMost采用TypeScript编写,覆盖主应用文件将导致应用崩溃或实现代码执行。
    
    ## 示例PoC
    ```bash
    $ echo 'Hello World' > ZIPSLLIP.md
    $ echo pwn > poc.txt
    $ zip zipslip.zip ZIPSLLIP.md 
    $ unzip -l zipslip.zip
    ```
    
    ## 责任报告者
    - **RamadhanAmizudin**
    ```
    
    该markdown简洁明了地概述了关于漏洞的所有关键信息。
                                            
    Arbitrary File Write via Zip Import Feature (ZipSlip) · Advisory · docmost/docmost · GitHub
  • 标题: fix: zip extraction validation (#1753) · docmost/docmost@c3b350d · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ### 关键漏洞信息
    
    - **提交信息**
      - 作者:Philipinho
      - 日期:2025年12月1日
      - 提交描述:`fix: zip extraction validation (#1753)`
    
    - **漏洞修复**
      - **文件处理路径**
        - 修复了`extractZipInternal`函数中的问题,主要集中在文件名的验证和路径解析上。
    
    - **关键代码段**
      ```typescript
      // 文件名验证
      const validationError = yazul.validateFileName(safe);
      if (validationError) {
          console.warn(`Skipping invalid entry ${validationError}`);
          zipfile.readEntry();
          return;
      }
    
      // 路径规范化处理
      const fullPath = path.join(target, safe);
      const resolved = path.resolve(fullPath);
      const targetResolved = path.resolve(target);
      if (!resolved.startsWith(targetResolved + path.sep)) {
          console.warn(`Skipping entry (path outside target): ${safe}`);
          zipfile.readEntry();
          return;
      }
      ```
    
    - **受影响的文件**
      - `apps/server/src/integrations/import/utils/file.utils.ts`
    
    - **变更细节**
      - **1文件变更**
        - 增加了17行代码,用于增强文件的验证逻辑,防止潜在的安全风险,如路径遍历攻击(Path Traversal)。
    
    ### 归纳
    此次提交主要修复了在处理zip文件解压时可能存在的路径遍历漏洞,通过引入文件名验证和路径规范化检查,确保所有文件都被解压到目标目录内,避免潜在的安全风险。
                                            
    fix: zip extraction validation (#1753) · docmost/docmost@c3b350d · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-22249
四、漏洞 CVE-2026-22249 的评论

暂无评论


发表评论