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

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-23852 基础信息
漏洞信息
                                        # 思源笔记 `setBlockAttrs` 图标属性存储型XSS/RCE漏洞

## 概述
SiYuan 是一个个人知识管理系统。在 3.5.4 之前版本中存在存储型跨站脚本(XSS)漏洞,攻击者可通过 `/api/attr/setBlockAttrs` API 向区块的 `icon` 属性注入任意 HTML 属性。

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

## 细节
攻击者可利用 `/api/attr/setBlockAttrs` 接口在区块的 `icon` 属性中注入恶意 HTML 属性。该 payload 会在动态图标功能中被直接渲染,且未经过充分的输入过滤与输出编码。

此漏洞绕过了此前针对 issue `#15970`(通过动态图标实现 XSS → RCE)所实施的修复措施。

## 影响
导致存储型 XSS。在桌面环境中,可进一步利用该漏洞实现远程代码执行(RCE)。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
SiYuan vulnerable to Stored XSS / RCE via `setBlockAttrs` icon attribute
来源:美国国家漏洞数据库 NVD
漏洞描述信息
SiYuan is a personal knowledge management system. Versions prior to 3.5.4 have a stored Cross-Site Scripting (XSS) vulnerability that allows an attacker to inject arbitrary HTML attributes into the `icon` attribute of a block via the `/api/attr/setBlockAttrs` API. The payload is later rendered in the dynamic icon feature in an unsanitized context, leading to stored XSS and, in the desktop environment, potential remote code execution (RCE). This issue bypasses the previous fix for issue `#15970` (XSS → RCE via dynamic icons). Version 3.5.4 contains an updated fix.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
对生成代码的控制不恰当(代码注入)
来源:美国国家漏洞数据库 NVD
二、漏洞 CVE-2026-23852 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-23852 的情报信息
  • 标题: Stored XSS / RCE via `setBlockAttrs` icon attribute (bypass of dynamic icon XSS fix #15970) · Advisory · siyuan-note/siyuan · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ### 关键漏洞信息
    
    - **漏洞类型**: 存储型XSS / RCE
    - **影响版本**: <=v3.5.3
    - **修复版本**: v3.5.4
    - **CVE ID**: CVE-2026-23852
    - **严重性**: 高
    
    ### 漏洞描述
    
    - **摘要**
      - SiYuan中存在存储型XSS漏洞,允许攻击者通过`/api/attr/setBlockAttrs` API 将任意HTML属性注入块的`icon`属性中。不在适当的上下文中渲染payload后,在动态图标特性中可能导致存储型XSS和潜在的远程代码执行(RCE)。
      
    - **细节**
      - `/api/attr/setBlockAttrs`端点接受攻击者控制的数据在`attrs.icon`字段
      - 静态图标存储在块里并会在按需加载时插入到HTML的属性上下文中。如果未进行适当转码,攻击者可利用故意插入的某些属性执行任意脚本。
      - 该问题为之前修复过的原动态图标问题的变体,之前的修复成功限制客户端,但变动API仍然可到达此sink 因此该问题是一个可绕过修复/回归错误。
    
    ### 影响
    
    - **存储XSS**: 任何查看受影响块的用户都会触发攻击者控制的JavaScript
    - **桌面RCE**: 在桌面应用中,XSS可被升级为任意命令执行
    - **攻击先决条件**: 对API和块属性的写入权限(直接写或者间接调用`setBlockAttrs`函数)
    
    ### 操纵代码样例
    
    ```javascript
    POST /api/attr/setBlockAttrs HTTP/1.1
    Host: localhost:8006
    Content-Type: application/json
    
    {
      "id": "<BLOCK_ID>", 
      "attrs": {
        "icon": "api/icon/getDynamicIcon\" onload=\"alert(document.domain)"
      }
    }
    ```
    
    ### 影响评估
    
    - 存储型XSS 可能导致远程代码执行的潜在问题。 需要将其视为#15970的修复绕过问题 并分配新的CVE编号
                                            
    Stored XSS / RCE via `setBlockAttrs` icon attribute (bypass of dynamic icon XSS fix #15970) · Advisory · siyuan-note/siyuan · GitHub
  • 标题: :lock: Fix https://github.com/siyuan-note/siyuan/security/advisories/… · siyuan-note/siyuan@0be7e1d · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            - **漏洞相关信息:**
       - **Commit Message**: 修复了漏洞 GHSA-7c6g-g2hx-23vv。
       - **修复内容**:在 `app/src/emoji/index.ts` 文件中添加了两次 `Lute.Sanitize(emoji)`,对生成的 `img` 标签进行了安全处理,防止潜在的XSS攻击。
       - **修复原因**: 通过调用 `Lute.Sanitize` 方法对 `emoji` 变量进行安全过滤,避免了直接将未处理的字符串嵌入到 `src` 属性中,从而防止了可能的跨站脚本攻击(XSS)。
                                            
    :lock: Fix https://github.com/siyuan-note/siyuan/security/advisories/… · siyuan-note/siyuan@0be7e1d · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-23852
四、漏洞 CVE-2026-23852 的评论

暂无评论


发表评论