Skip to content
OpenAdvisories
High · 8.7 Public exploit CVE-2026-59248 EEF-CVE-2026-59248EUVD-2026-49739GHSA-f37p-pc7r-rghm

Unbounded HPACK/QPACK prefixed-integer decoding in Cowlib causes memory-exhaustion DoS

Published Jul 28, 2026 · Updated Jul 29, 2026 · Assigned by EEF

Description

Allocation of resources without limits vulnerability in ninenines cowlib allows an unauthenticated remote HTTP/2 or HTTP/3 peer to exhaust memory on the vulnerable server (or client) and cause a denial of service.

The HPACK and QPACK prefixed-integer decoder cow_hpack_common:dec_big_int/3 in src/cow_hpack_common.hrl (invoked from cow_hpack:decode/2 in src/cow_hpack.erl and from cow_qpack:decode_field_section/3 in src/cow_qpack.erl) reads continuation octets until it sees one whose high bit is clear, evaluating Int + (Value bsl M) at each step with the shift M growing by seven per octet. No limit is enforced on the number of continuation octets, on the resulting bit width, or on the value; the decoder consumes whatever encoded length the peer supplies.

Because Erlang integers are immutable, each intermediate Value bsl M and each accumulator update allocates a fresh bignum whose digit width grows linearly with the number of octets processed so far. Summed across the whole decode, the transient bignum digit materialization is on the order of the square of the encoded length. A single maximal HPACK indexed representation carried inside one HTTP/2 HEADERS plus one CONTINUATION frame at Cowboy's default max_frame_size_received can force hundreds of megabytes of transient allocation and garbage-collection churn before the resulting header-table index is rejected as invalid. Repeated or concurrent connections multiply the pressure and can drive the Erlang VM to memory exhaustion.

Cowlib is the HTTP parser used by Cowboy, RabbitMQ's management plugin, and other Erlang and Elixir HTTP/2 and HTTP/3 servers and clients, so any exposed endpoint that accepts HPACK or QPACK from an untrusted peer is reachable.

This issue affects cowlib: from 2.0.0 before 2.19.0.

Affected products

VendorProductAffectedFixed
ninenines cowlib 2.0.0-pre.1 – < 2.19.0 2.19.0

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 erlang-cowlib 2.19.0-1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 erlang-cowlib +1 No fix yet —
Ubuntu 26.04 LTS erlang-cowlib No fix yet —
Ubuntu 26.04 LTS rabbitmq-server 4.0.5-10ubuntu5.1 USN-8869-1
Ubuntu 24.04 LTS erlang-cowlib No fix yet —
Ubuntu 24.04 LTS rabbitmq-server 3.12.1-1ubuntu1.6 USN-8869-1
Ubuntu 22.04 LTS erlang-cowlib No fix yet —
Ubuntu 22.04 LTS rabbitmq-server 3.9.27-0ubuntu0.5 USN-8869-1
Ubuntu 20.04 LTS erlang-cowlib No fix yet —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS erlang-cowlib No fix yet —
Ubuntu 16.04 LTS erlang-cowlib No fix yet —
Ubuntu Pro 20.04 LTS rabbitmq-server 3.8.3-0ubuntu0.3+esm1 USN-8869-1
Ubuntu Pro 18.04 LTS rabbitmq-server No fix yet —
Ubuntu Pro 16.04 LTS rabbitmq-server No fix yet —
ReleasePackageFixed inAdvisory
Red Hat Hardened Images 1 rabbitmq-server4.2 4.2.9-0.2.hum1 RHSA-2026:47236
Red Hat Hardened Images 1 rabbitmq-server4.3 4.3.4-0.2.hum1 RHSA-2026:57882, RHSA-2026:47231

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 rabbitmq-server 3.13.7-9 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
Hex cowlib >= 2.0.0-pre.1, < 2.19.0 2.19.0 EEF-CVE-2026-59248

Advisories 4

References