CVE-2026-42544Granian是一款用于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),远程攻击者可以通过发送简单的恶意数据包反复使服务崩溃,从而造成严重的拒绝服务状态。