# CVE-2026-59248: erlang-cowlib: Allocation of resources without limits vulnerability in ninenines cowlib allows an unauthenticated remote HTTP/2 or H...

CVE-2026-59248 is fixed in 4 products on 1 platform, first by rabbitmq-server 3.8.3-0ubuntu0.3+esm1, released July 28, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-59248
- Priority: Routine
- CVSS: n/a (Medium)
- EPSS: 0.0029
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Jul 28, 2026

## 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.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | erlang-cowboy Fedora 43 | 2.18.0-1.fc43 | [FEDORA-2026-CE97D80DAE](https://patchblox.com/security/data/fix/linux/fedora-2026-ce97d80dae.md) | Aug 5, 2026 |
| Linux | erlang-cowboy-doc Fedora 43 | 2.18.0-1.fc43 | [FEDORA-2026-CE97D80DAE](https://patchblox.com/security/data/fix/linux/fedora-2026-ce97d80dae.md) | Aug 5, 2026 |
| Linux | erlang-cowlib Debian 14 | 2.19.0-1 | [DEBIAN-CVE-2026-59248](https://patchblox.com/security/data/fix/linux/debian-cve-2026-59248.md) | Aug 3, 2026 |
| Linux | erlang-cowlib Fedora 43 | 2.19.0-1.fc43 | [FEDORA-2026-CE97D80DAE](https://patchblox.com/security/data/fix/linux/fedora-2026-ce97d80dae.md) | Aug 5, 2026 |
| Linux | rabbitmq-server Ubuntu 20.04 LTS (focal) | 3.8.3-0ubuntu0.3+esm1 | [rabbitmq-server 3.8.3-0ubuntu0.3+esm1](https://patchblox.com/security/data/fix/linux/ubuntu-focal-rabbitmq-server-3.8.3-0ubuntu0.3-esm1.md) | Jul 28, 2026 |
| Linux | rabbitmq-server Ubuntu 22.04.1 LTS (jammy) | 3.9.27-0ubuntu0.5 | [rabbitmq-server 3.9.27-0ubuntu0.5](https://patchblox.com/security/data/fix/linux/ubuntu-jammy-rabbitmq-server-3.9.27-0ubuntu0.5.md) | Jul 28, 2026 |
| Linux | rabbitmq-server Ubuntu 24.04.5 LTS (noble) | 3.12.1-1ubuntu1.6 | [rabbitmq-server 3.12.1-1ubuntu1.6](https://patchblox.com/security/data/fix/linux/ubuntu-noble-rabbitmq-server-3.12.1-1ubuntu1.6.md) | Jul 28, 2026 |
| Linux | rabbitmq-server Ubuntu 26.04.1 LTS (resolute) | 4.0.5-10ubuntu5.1 | [rabbitmq-server 4.0.5-10ubuntu5.1](https://patchblox.com/security/data/fix/linux/ubuntu-resolute-rabbitmq-server-4.0.5-10ubuntu5.1.md) | Jul 28, 2026 |

---

Data as of 2026-11-08T13:06:02Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
