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

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-23851 基础信息
漏洞信息
                                        # 思源笔记文件复制任意文件读取漏洞

## 概述
SiYuan 是一款个人知识管理系统,在 3.5.4 之前版本中,`/api/file/globalCopyFiles` 接口存在逻辑漏洞。

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

## 细节
漏洞位于 `api/file.go` 文件中的 `globalCopyFiles` 函数。该函数接收 JSON 请求体中的源文件路径列表(`srcs`),并在服务器上执行文件复制操作。虽然使用 `filelock.IsExist(src)` 检查文件是否存在,但未对源路径是否位于授权的工作区目录内进行校验,导致路径遍历或越权文件读取风险。

## 影响
经过身份验证的用户可利用此漏洞,将服务器文件系统任意位置的文件复制到应用的工作区中,可能导致敏感信息泄露或进一步的攻击。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
SiYuan Vulnerable to Arbitrary File Read via File Copy Functionality
来源:美国国家漏洞数据库 NVD
漏洞描述信息
SiYuan is a personal knowledge management system. Versions prior to 3.5.4 contain a logic vulnerability in the /api/file/globalCopyFiles endpoint. The function allows authenticated users to copy files from any location on the server's filesystem into the application's workspace without proper path validation. The vulnerability exists in the api/file.go source code. The function globalCopyFiles accepts a list of source paths (srcs) from the JSON request body. While the code checks if the source file exists using filelock.IsExist(src), it fails to validate whether the source path resides within the authorized workspace directory. Version 3.5.4 patches the issue.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
对路径名的限制不恰当(路径遍历)
来源:美国国家漏洞数据库 NVD
二、漏洞 CVE-2026-23851 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-23851 的情报信息
  • 标题: Arbitrary file reading vulnerability · Issue #16860 · siyuan-note/siyuan -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ## 关键信息
    
    - **标题**:Arbitrary file reading vulnerability #16860
    - **状态**:Closed
    - **创建者**:88250
    - **创建时间**:2天前
    - **相关漏洞ID**:
      - GHSA-cv54-7ww7-qxcw
      - GHSA-94c7-q2fj-7682
    - **标签**:
      - Bug
    - **里程碑**:
      - 3.5.4
    - **处理行动**:
      - 添加了2个提交,修复了该漏洞
      - 在2天前被标记为已完成并关闭
    - **备注**:
      - 提到的SSRF(服务器端请求伪造)在这个情况下不算作漏洞,因此不作处理
                                            
    Arbitrary file reading vulnerability · Issue #16860 · siyuan-note/siyuan
  • 标题: Arbitrary File Read via File Copy Functionality · Advisory · siyuan-note/siyuan · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ## 关键漏洞信息
    
    ### 漏洞概述
    - **标题**: 通过文件复制功能任意读取文件
    - **CVE ID**: CVE-2026-23851
    - **严重度**: Critical
    
    ### 影响版本
    - **受影响版本**: v3.5.3
    - **修复版本**: v3.5.4
    
    ### 漏洞详情
    - **漏洞点**: SiYuan Note 应用 (v3.5.3) 在 `/api/file/globalCopyFiles` 接口存在逻辑漏洞。
    - **问题描述**: 该函数允许经过验证的用户在未经正确路径验证的情况下,从服务器文件系统复制文件到应用程序的指定位置。
      
    ### 详细信息
    - **源代码漏洞**:
      `api/file.go` 中的 `globalCopyFiles` 函数接受 source paths 参数,源文件使用 `filelock.IsExist(src)` 检查存在性,但未验证路径是否在授权的工作目录内。
    
    ### 证明概念 (PoC)
    - **步骤**: 使用 HTTP 请求复制系统文件 `/etc/passwd` 到应用根目录并下载。
    
    #### 示例请求与响应
    ```json
    // 请求示例
    {
      "srcs": ["/etc/passwd"],
      "dstDir": "/"
    }
    
    // 响应示例
    {
      "code": 0,
      "msg": "",
      "data": null
    }
    ```
    
    ### 影响
    - **危害**: 攻击者可利用该漏洞读取任意文件,包括敏感配置及系统文件(如 `/etc/passwd`)。若攻击者滥用此漏洞,可能从应用权限提升到基础设施全系统暴露。
      
    ### 解决方案
    - **升级版本**: 将当前版本 v3.5.3 升级到修复后的版本 v3.5.4。
                                            
    Arbitrary File Read via File Copy Functionality · Advisory · siyuan-note/siyuan · GitHub
  • 标题: :lock: Arbitrary file reading vulnerability https://github.com/siyuan… · siyuan-note/siyuan@b2274ba · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ```md
    ### 关键信息摘要
    
    #### 漏洞描述
    - **漏洞类型**: 任意文件读取漏洞
    - **问题**: 代码中未对敏感文件或路径进行有效检查,可能导致攻击者读取任意文件。
    
    #### 修复措施
    1. **添加文件路径校验**:
        - 引入 `util.IsSensitivePath` 函数,对敏感文件和路径进行检测。
        - 检测的敏感文件和路径包括但不限于:
            - `etc/passwd`, `etc/shadow`, `etc/gshadow`, `var/run/secrets`, `root`, `ssh`, `gnupg`, `env`, `netrc`, `aspnetcore-secrets`, `key`, `pem` 等。
    
    2. **代码修改文件**:
        - **`kernel/api/file.go`**: 修改 `globalCopyFiles` 函数,加入对 `absSrc` 文件路径的敏感性检查。
        - **`kernel/model/assets.go`**: 修改 `netAssets2LocalAssets0` 函数,加入对`u`路径的敏感性检查。
        - **`kernel/util/path.go`**: 新增 `IsSensitivePath` 函数,对各种敏感文件和路径做统一检测。
    
    #### 代码修改要点
    - 对 suspicious 路径进行清理和统一检测,增强对敏感文件访问的安全检查。
    - 在发生敏感文件访问时记录日志并返回错误码,阻止进一步操作。
    - 将检测扩展到多种扩展名的敏感文件中,如 `.env`, `.key`, `.pem` 等。
    
    ```
                                            
    :lock: Arbitrary file reading vulnerability https://github.com/siyuan… · siyuan-note/siyuan@b2274ba · GitHub
  • 标题: :lock: Arbitrary file reading vulnerability https://github.com/siyuan… · siyuan-note/siyuan@f8f4b51 · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            - 漏洞类型: 任意文件读取漏洞 (Arbitrary file reading vulnerability)
    - 漏洞编号: #16860
    - 提交者: 88250
    - 提交时间: 2天前
    - 修复内容: 在`kernel/util/path.go`文件的`IsSensitivePath`函数中添加了对`hosts`文件的检测
                                            
    :lock: Arbitrary file reading vulnerability https://github.com/siyuan… · siyuan-note/siyuan@f8f4b51 · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-23851
四、漏洞 CVE-2026-23851 的评论

暂无评论


发表评论