CVE-2026-69084 - SiYuan: Unauthenticated arbitrary SQL execution via searchEmbedBlock (publish mo

CVE-2026-69084 是思源笔记(SiYuan)存在严重任意SQL执行漏洞。当发布服务开启匿名访问或攻击者获取RoleReader令牌时,可向 /api/search/searchEmbedBlock 接口提交任意SQL,读写明文笔记数据。受影响版本 ≤ v3.7.2,建议立即升级到 v3.7.3。CVSS 10.0,属于Critical级别。

🔥 热门漏洞情报 · GitHub-Advisory · 2026-09-03

CVE-2026-69084 - SiYuan: Unauthenticated arbitrary SQL execution via searchEmbedBlock (publish mo

Critical · CVSS 10.0 未授权任意SQL执行/访问控制缺失
CVE-2026-69084
📊 跨来源整合NVD-LatestPoC-in-GitHub

📋 漏洞概述

思源笔记 searchEmbedBlock 接口存在未授权任意SQL执行漏洞,攻击者可读写所有明文笔记本内容,造成数据泄露与篡改。

📋 基础信息

受影响版本SiYuan <= v3.7.2
漏洞类型未授权任意SQL执行/访问控制缺失
CVSS10.0 · Critical
CVECVE-2026-69084

🔬 漏洞根因

searchEmbedBlock 接口将客户端提供的 SQL 语句原样传递给数据库执行,未进行任何验证或过滤。该接口仅由 CheckAuth 门控,未执行单语句检查、只读检查或管理员角色限制,导致低权限 RoleReader 令牌甚至匿名用户(Publish.Auth.Enable=false 时)可直接操作可读写的 siyuan.db 主库,且底层驱动支持多语句堆叠执行,造成任意SQL执行。

🎯 攻击场景

1. 攻击者访问开启了发布功能的思源服务,获取匿名访问能力(未启用认证)或窃取/截获一个低权限的 RoleReader 令牌。 2. 构造 POST 请求到 /api/search/searchEmbedBlock,请求体为 JSON:{"stmt":"<恶意SQL>"}。 3. 恶意SQL可包含多条堆叠语句,如先读取所有明文笔记本数据,再修改或删除关键笔记内容。 4. 请求通过仅有的 CheckAuth 校验后,成功在 siyuan.db 主库上执行任意SQL,无需任何管理员权限。 5. 攻击者获得明文笔记内容或破坏数据库完整性,实现信息窃取与内容篡改。

💥 漏洞影响

攻击者可完全读取和修改所有已打开的明文笔记本中的文本、属性与文档结构,造成严重数据泄露与完整性破坏;同时可利用主库读写能力篡改数据库元数据,可能进一步影响服务可用性。加密的 per-box 笔记数据库不在影响范围内。

🛡️ 修复建议

立即升级到 SiYuan v3.7.3 或更高版本,该版本已为相关接口增加单语句限制、只读检查和管理员权限校验。临时缓解措施:在升级前关闭发布服务或启用 Publish.Auth.Enable=true,限制 RoleReader 令牌的分发和使用,通过防火墙/WAF限制 /api/search/searchEmbedBlock 的外部访问,并监控相关异常流量。

📎 参考链接

🚨 威胁评估

📈 EPSS 利用概率暂无数据
🚨 CISA KEV未被已知利用
🔧 公开 PoC暂无公开 PoC

⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-09-04 05:07 | 来源: GitHub-Advisory

🤖 常见问题解答(FAQ)

❓ 如何确认自己的思源版本是否受影响?

检查版本号是否 ≤ v3.7.2。可尝试用匿名或低权限令牌向 /api/search/searchEmbedBlock 发送 {"stmt":"SELECT 1"},若返回正常结果则说明存在漏洞。

❓ 攻击者利用该漏洞需要哪些条件?

要求思源发布服务开放该接口,且处于匿名可访问状态(Publish.Auth.Enable=false),或者攻击者已获得具备 RoleReader 权限的发布令牌。无需管理员权限。

❓ v3.7.3 修复该漏洞的具体方式是什么?

官方为该接口补上了与 /api/query/sql 一致的防护,包括执行前检测单语句、只读模式下拒绝非只读SQL,并加强访问控制,禁止低权限角色调用该接口。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)