关键信息 漏洞名称 MadeYouReset HTTP/2 vulnerability CVE ID CVE-2023-5115 CVSS 评分 7.5 / 10 影响的包和版本 org.eclipse.jetty.http2:http2-common (Maven) - 受影响版本: >=9.3.0, =10.0.0, =11.0.0, =12.0.0, =12.1.0-alpha0, <=12.1.0-beta2 - 修复版本: 12.0.25, 12.1.0-beta3 漏洞描述 MadeYouReset漏洞是HTTP/2协议中的一个逻辑漏洞,通过使用畸形的HTTP/2控制帧来打破最大并发流限制,导致资源耗尽和分布式拒绝服务。 攻击机制 使用畸形的WINDOW_UPDATE帧或数据帧触发RST_STREAM帧。 利用多个原始帧(如WINDOW_UPDATE、HEADERS/DATA、PRIORITY)进行攻击。 攻击流程 1. 攻击者打开HTTP/2连接。 2. 发送HEADERS帧并设置END_STREAM标志。 3. 发送WINDOW_UPDATE帧将流控制窗口设为0。 4. 服务器发送RST_STREAM帧,减少活动流计数器。 5. 攻击者重复步骤2-3,导致资源耗尽和拒绝服务。 与Rapid Reset的比较 此漏洞利用了HTTP/2协议设计中的缺陷,类似于Rapid Reset漏洞,但由客户端触发重置。 建议缓解措施 限制RST_STREAM帧的数量。 限制控制帧的数量,并将协议错误视为连接错误。 Jetty团队笔记 影响:类似Rapid Reset的拒绝服务漏洞,由客户端通过发送畸形或无效帧触发。 修复:已合并到12.0.x主线中(#13449)。 解决方案:目前没有其他解决方法,除了禁用HTTP/2。