Vulnerability advisory
CVE-2026-43970
Decompression Bomb in cow_spdy:inflate/2 Allows Memory Exhaustion via Crafted SPDY Frame
Also known as EEF-CVE-2026-43970GHSA-84f2-rp86-235p
- CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Affected versions
Repository
| Affected commits | Fixed by commit |
|---|---|
| GIT github.com/ninenines/cowlib ↗ | |
| fad5c0049df278cc498b6cdb519b09e845a070a8 to before 16aad3fb9f81f5cda4d1706ff0c54237c619c282 | 16aad3fb9f81f5cda4d1706ff0c54237c619c282 |
| 2f35af5b0a67f591dde5ae4305a9587988a37c0c to before bae6b022af54566f3518a3aa59083b4591d552de | bae6b022af54566f3518a3aa59083b4591d552de |
Also listed as affected (42)
| |
Description
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in ninenines cowlib allows unauthenticated remote denial of service via memory exhaustion.
cow_spdy:inflate/2 in cowlib passes peer-supplied compressed bytes directly to zlib:inflate/2 with no output size bound. The SPDY header compression dictionary (?ZDICT) is public, and zlib compresses long runs of repeated bytes at roughly 1024:1, so a few kilobytes of SPDY frame payload can decompress to gigabytes on the BEAM heap, OOM-killing the node. A single unauthenticated SPDY frame is sufficient to trigger the condition. The parsers for syn_stream, syn_reply, and headers frame types are all affected via cow_spdy:parse_headers/2.
This issue affects cowlib from 0.1.0 before 2.16.1.
References
- Webgithub.com ↗
- Webosv.dev/vulnerability/EEF-CVE-2026-43970 ↗
- Webrepo.hex.pm ↗
- Advisorycna.erlef.org/cves/CVE-2026-43970.html ↗
- Advisorygithub.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43970.json ↗
- Advisorynvd.nist.gov/vuln/detail/CVE-2026-43970 ↗
- Fixgithub.com/ninenines/cowlib/commit/16aad3fb9f81f5cda4d1706ff0c54237c619c282 ↗
- Packagegithub.com/ninenines/cowlib ↗