{"affected":[{"package":{"ecosystem":"Hex","name":"cowlib","purl":"pkg:hex/cowlib"},"ranges":[{"events":[{"introduced":"0.6.0"},{"fixed":"2.16.1"}],"type":"SEMVER"}],"versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.2.0","1.3.0","2.0.0","2.0.1","2.1.0","2.2.0","2.2.1","2.3.0","2.4.0","2.5.0","2.5.1","2.6.0","2.7.0","2.7.1","2.7.2","2.7.3","2.8.0","2.9.0","2.9.1","2.10.0","2.10.1","2.11.0","2.12.0","2.12.1","2.13.0","2.14.0","2.15.0","2.16.0"]},{"ranges":[{"events":[{"introduced":"8c0e428b012c59f553a264f285ed89d36f791e3e"},{"fixed":"a4b8039ce8c93ab00867ef6b7e888822c09f4369"}],"repo":"https://github.com/ninenines/cowlib","type":"GIT"}]}],"aliases":["CVE-2026-7790"],"credits":[{"name":"Peter Ullrich","type":"FINDER"},{"name":"Loïc Hoguin","type":"REMEDIATION_DEVELOPER"}],"database_specific":{"capec_ids":["CAPEC-130"],"cpe_ids":["cpe:2.3:a:ninenines:cowlib:*:*:*:*:*:*:*:*"],"cwe_ids":["CWE-400"]},"details":"## Summary\n\nUncontrolled Resource Consumption vulnerability in ninenines cowlib (cow_http_te module) allows Excessive Allocation.\n\nThe chunked transfer-encoding parser in cow_http_te accepts an unbounded number of hex digits in the chunk-size field. Each digit causes a bignum multiplication (Len * 16 + digit), so parsing N hex digits requires O(N²) CPU work and O(N) memory. Additionally, when input is drip-fed, the parser discards the accumulated length on each partial read and restarts from zero on resumption, raising the cost to O(N³). An unauthenticated remote attacker can exploit this by sending an HTTP/1.1 request with Transfer-Encoding: chunked and a very long chunk-size hex string to cause denial of service through CPU exhaustion and memory amplification.\n\nThis vulnerability is associated with program file src/cow_http_te.erl and program routines cow_http_te:stream_chunked/2, cow_http_te:chunked_len/4.\n\nThis issue affects cowlib: from 0.6.0 before 2.16.1.\n\n## Workaround\n\nIn Cowboy, setting initial_stream_flow_size to a much lower value limits the amount of chunked body data that cowlib will parse in a single read, reducing the window of data an attacker can use to trigger the quadratic work. This does not fully eliminate the vulnerability but can significantly reduce its impact for some applications.","id":"EEF-CVE-2026-7790","modified":"2026-05-11T18:06:41.490Z","published":"2026-05-11T18:06:41.490Z","references":[{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-7790.html"},{"type":"FIX","url":"https://github.com/ninenines/cowlib/commit/a4b8039ce8c93ab00867ef6b7e888822c09f4369"}],"related":[],"schema_version":"1.7.3","severity":[{"score":"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","type":"CVSS_V4"}],"summary":"Unbounded chunk-size hex digits in cowlib cause quadratic CPU and memory DoS","upstream":[]}