{"id":"CVE-2026-82729","aliases":["EEF-CVE-2026-82729","EUVD-2026-71219","GHSA-7p8w-j234-7qc8"],"status":"published","title":"Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS","description":"Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\nparse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0.","severity":{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00524,"percentile":0.44938,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-407"],"published":"2026-09-04T14:31:20Z","modified":"2026-10-28T02:31:01Z","fixes":[{"ecosystem":"Hex","package":"mint","fixed_in":["1.10.0"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Hex","package":"mint","ranges":[{"type":"SEMVER","events":[{"introduced":"1.9.3"},{"fixed":"1.10.0"}]}],"versions":["1.9.3"]}],"products":[{"vendor":"elixir-mint","product":"mint"},{"vendor":"linuxmint","product":"mint"}],"references":[{"url":"https://github.com/elixir-mint/mint/security/advisories/GHSA-7p8w-j234-7qc8","tags":["related","vendor-advisory","exploit","advisory"]},{"url":"https://cna.erlef.org/cves/CVE-2026-82729.html","tags":["related","web"]},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-82729","tags":["related","web"]},{"url":"https://github.com/elixir-mint/mint/commit/bd2a4e7513594997c140cfef9fe0e968712fb588","tags":["patch","fix"]},{"url":"https://github.com","tags":["web"]},{"url":"https://repo.hex.pm","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82729.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-82729","tags":["advisory"]},{"url":"https://github.com/elixir-mint/mint","tags":["package"]},{"url":"https://hex.pm/packages/mint","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-82729","title":"Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS","description":"Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\nparse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0.","status":"published","published":"2026-09-04T14:31:20.562Z","modified":"2026-09-04T19:33:32.398Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium","assessor":"cna"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T13:40:46.161838Z"}],"euvd":[{"id":"EUVD-2026-71219","description":"Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\nparse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0.","status":"published","published":"2026-09-04T14:31:20Z","modified":"2026-09-04T19:33:32Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-02T18:01:11.238356Z"}],"nvd":[{"id":"CVE-2026-82729","description":"Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\nparse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0.","status":"published","published":"2026-09-04T15:17:36.12Z","modified":"2026-09-08T14:16:14.947Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/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","level":"medium","assessor":"secondary"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T14:12:43.737972Z"}],"osv":[{"id":"CVE-2026-82729","title":"Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS","description":"Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\nparse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0.","status":"published","published":"2026-09-04T14:31:20.562Z","modified":"2026-10-28T02:31:01.331744435Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T15:45:18.482949Z"},{"id":"EEF-CVE-2026-82729","title":"Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS","description":"## Summary\n\nInefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\n`parse_hex_prefix/2` in `lib/mint/http1/parse.ex` folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with `acc * 16 + digit` and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over `N` digits costs O(N squared). `handle_data/2` prepends `conn.buffer` and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0.","status":"published","published":"2026-09-04T14:31:20.562Z","modified":"2026-09-08T02:45:03.377786799Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T15:46:33.520522Z"}]}}
