🟠 《高危安全漏洞:CVE-2026-59248》

CVSS 评分: 高危(8.7)  状态: Received  发布时间: 2026-07-28


漏洞简介

CVE-2026-59248 是一个存在于 ninenines cowlib 库中的资源分配无限制漏洞(CWE-770)。该漏洞允许一个未经身份验证的远程 HTTP/2 或 HTTP/3 对等端(peer)通过发送特制的数据包,耗尽目标服务器(或客户端)的内存,从而引发拒绝服务(Denial of Service, DoS)。

漏洞的核心问题位于 HPACK 和 QPACK 前缀整数解码器函数 cow_hpack_common:dec_big_int/3 中,该函数定义在 src/cow_hpack_common.hrl 文件内。该函数被以下两个模块调用:

  • cow_hpack:decode/2(位于 src/cow_hpack.erl
  • cow_qpack:decode_field_section/3(位于 src/cow_qpack.erl

解码器在处理前缀整数时,会持续读取后续的八位字节(continuation octets),直到遇到一个高位(high bit)为 0 的字节为止。在每次读取过程中,解码器会执行 Int + (Value bsl M) 运算,其中移位量 M 每处理一个八位字节增加 7。然而,该解码器没有对以下任何一项进行限制

  • 后续八位字节的数量
  • 最终生成的位宽(bit width)
  • 最终解码出的整数值

因此,解码器会无条件地消费对等端提供的任意长度的编码数据。

由于 Erlang 中的整数是不可变的(immutable),每次执行 Value bsl M 以及每次累加器更新时,都会分配一个全新的 bignum(大整数),其数字宽度(digit width)会随着已处理的八位字节数量线性增长。在整个解码过程中,临时 bignum 数字的物化(transient bignum digit materialization)开销与编码长度的平方成正比。

具体攻击场景:一个包含最大 HPACK 索引表示(maximal HPACK indexed representation)的 HTTP/2 HEADERS 帧,配合一个 CONTINUATION 帧(在 Cowboy 默认的 max_frame_size_received 设置下),可以强制触发数百兆字节的临时内存分配和垃圾回收(garbage-collection)开销,直到最终生成的头部表索引(header-table index)因无效而被拒绝。重复或并发连接会进一步加剧内存压力,最终导致 Erlang 虚拟机(VM)内存耗尽。

影响范围

该漏洞影响 cowlib 库的以下版本:

  • 从 2.0.0 开始,至 2.19.0 之前的所有版本(即 >= 2.0.0 且 < 2.19.0)。

Cowlib 是以下组件的底层 HTTP 解析器:

  • Cowboy(Erlang 高性能 HTTP 服务器)
  • RabbitMQ 的管理插件(Management Plugin)
  • 其他基于 Erlang 和 Elixir 的 HTTP/2 和 HTTP/3 服务器及客户端

因此,任何暴露的、接受来自不可信对等端的 HPACK 或 QPACK 数据的端点,都可能受到该漏洞的影响。

风险分析

  • 攻击向量:网络远程攻击(AV:N),无需身份验证(PR:N),无需用户交互(UI:N)。
  • 攻击复杂度:低(AC:L),攻击者只需构造特制的 HTTP/2 或 HTTP/3 数据帧即可触发。
  • 影响后果
    • 机密性(Confidentiality):无影响(VC:N)
    • 完整性(Integrity):无影响(VI:N)
    • 可用性(Availability):高影响(VA:H)。攻击者可以通过耗尽服务器或客户端的内存,导致服务崩溃或无法响应合法请求,造成拒绝服务。
  • CVSS 评分:根据 CVSS:4.0 向量,该漏洞的基础分值为 7.5(高危),主要威胁在于可用性损失。

总结:该漏洞是一个典型的“资源耗尽”型拒绝服务漏洞,利用 HPACK/QPACK 解码器在处理超长前缀整数时缺乏限制的缺陷,通过构造少量精心设计的网络帧即可触发大量内存分配,最终导致目标系统内存耗尽。由于 cowlib 被广泛用于 Erlang/Elixir 生态中的 HTTP/2 和 HTTP/3 实现,影响面较广。建议受影响的用户尽快升级至 cowlib 2.19.0 或更高版本。


🔍 技术细节

字段
CVE ID CVE-2026-59248
CVSS 评分 8.7 🟠
严重程度 高危
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CWE 分类 CWE-770
发布时间 2026-07-28
最后更新 2026-07-28
状态 Received
数据来源 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

🔗 参考链接