IPBUF安全漏洞报告
English
CVE-2026-34212 CVSS 5.4 中危

CVE-2026-34212 Docmost 存储型XSS漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-34212
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Docmost

相关标签

XSS存储型XSSDocmostCWE-79CVSS-5.4

漏洞概述

Docmost是一款开源协作wiki软件。在0.71.0版本之前,该软件存在一个安全漏洞,允许低权限的认证用户在页面内容的附件节点中存储恶意的`javascript:` URL。当其他用户查看该页面并点击附件链接或图标时,攻击者注入的JavaScript代码将在受害者的浏览器中执行。该漏洞源于对附件URL的不当中和处理,可能导致敏感信息泄露或会话劫持。

技术细节

该漏洞属于典型的存储型跨站脚本攻击(Stored XSS)。Docmost在处理用户提交的附件URL时,未能充分验证和净化输入数据,特别是对`javascript:`伪协议的过滤存在疏漏。攻击者首先需要拥有一个低权限的认证账户,随后在编辑页面时,利用附件上传或插入功能,将恶意载荷(如`javascript:alert(document.cookie)`)注入到附件节点的URL属性中。后端系统直接将此恶意数据持久化存储在数据库中,未进行转义处理。当管理员或其他普通用户浏览包含该恶意附件的页面时,服务器会将存储的恶意URL回显至前端HTML中。一旦受害者尝试点击或激活该附件链接,浏览器便会识别`javascript:`协议并在当前Docmost域的上下文中执行内联脚本。这种攻击方式利用了用户对系统的信任,绕过了同源策略的限制,使得攻击者能够窃取会话凭证、执行恶意操作或重定向用户至钓鱼网站。

攻击链分析

STEP 1
步骤1:构造攻击载荷
攻击者使用低权限账户登录Docmost,准备包含javascript:伪协议的恶意URL,例如 javascript:alert(1)。
STEP 2
步骤2:存储恶意代码
攻击者编辑页面内容,在插入附件时,将恶意URL填入附件节点。由于系统未过滤,该URL被存储到数据库中。
STEP 3
步骤3:触发漏洞
其他用户(如管理员)访问被篡改的页面,Docmost从数据库读取并渲染该附件链接。
STEP 4
步骤4:执行攻击
受害者点击页面上的附件链接或图标,浏览器解析javascript:协议并执行攻击者预设的脚本,窃取数据或执行操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-34212: Stored XSS via Attachment URLs // 1. Log in as a low-privileged user. // 2. Edit a page and insert an attachment. // 3. Set the attachment URL to the following payload: let payload = "javascript:alert('CVE-2026-34212 XSS Triggered');"; // If the backend does not sanitize the 'javascript:' protocol, // this payload will be stored in the database. // 4. When another user views the page and clicks the attachment icon, // the browser executes the JavaScript in the context of the victim's session. console.log("Malicious payload prepared: " + payload);

影响范围

Docmost < 0.71.0

防御指南

临时缓解措施
如果无法立即升级,请严格限制用户创建和编辑页面的权限,仅允许可信用户操作。同时,建议用户不要点击页面中来源不明或异常的附件链接,直到应用补丁为止。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表