{"id":"CVE-2020-25574","aliases":["DEBIAN-CVE-2020-25574","EUVD-2021-1930","GHSA-x7vr-c387-8w57","RUSTSEC-2019-0033","UBUNTU-CVE-2020-25574"],"status":"published","title":"Integer Overflow/Infinite Loop in the http crate","description":"An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() could result in denial of service (e.g., an infinite loop).","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-10","score":0.02529,"percentile":0.85036,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-190","CWE-835"],"published":"2019-11-16T12:00:00Z","modified":"2026-10-26T12:02:31Z","fixes":[{"ecosystem":"crates.io","package":"http","fixed_in":["0.1.20"],"sources":["ghsa"]},{"ecosystem":"Debian:12","package":"rust-http","fixed_in":["0.1.19-2"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"rust-http","fixed_in":["0.1.19-2"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"rust-http","fixed_in":["0.1.19-2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.20"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.19-2"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.19-2"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.19-2"}]}]},{"source":"osv","ecosystem":"crates.io","package":"http","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.1.20"}]}],"bundled":2},{"source":"osv","ecosystem":"crates.io","package":"http","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.1.20"}]}],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.1.17-1","0.1.19-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.2.7-1","0.2.9-1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.0-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.1-1","1.4.0-1","1.5.0-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"rust-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.0-1","1.3.1-1"]}],"products":[{"vendor":"hyper","product":"http"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2019-0033.html","tags":["x_refsource_MISC","x_transferred","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/hyperium/http/issues/352","tags":["x_refsource_MISC","x_transferred","Exploit","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-25574","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-x7vr-c387-8w57"},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-25574","tags":["advisory"]},{"url":"https://github.com/hyperium/http","tags":["package"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-25008","tags":["advisory"]},{"url":"https://crates.io/crates/http","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2020-25574","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-25574","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2020-25574","description":"An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() could result in denial of service (e.g., an infinite loop).","status":"published","published":"2020-09-14T18:16:17Z","modified":"2024-08-04T15:33:05.69Z","updated_at":"2026-11-02T14:35:48.52216Z"}],"euvd":[{"id":"EUVD-2021-1930","description":"An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() could result in denial of service (e.g., an infinite loop).","status":"published","published":"2020-09-14T18:16:17Z","modified":"2024-08-04T15:33:05Z","updated_at":"2026-11-03T03:07:17.317062Z"}],"ghsa":[{"id":"GHSA-x7vr-c387-8w57","title":"Integer Overflow/Infinite Loop in the http crate","description":"HeaderMap::reserve() used usize::next_power_of_two() to calculate the increased capacity. However, next_power_of_two() silently overflows to 0 if given a sufficiently large number in release mode.\n\nIf the map was not empty when the overflow happens, the library will invoke self.grow(0) and start infinite probing. This allows an attacker who controls the argument to reserve() to cause a potential denial of service (DoS).\n\nThe flaw was corrected in 0.1.20 release of http crate.","status":"published","published":"2021-08-25T21:01:31Z","modified":"2023-06-13T18:21:10Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-190","CWE-835"],"updated_at":"2026-11-02T14:36:53.654352Z"}],"nvd":[{"id":"CVE-2020-25574","description":"An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() could result in denial of service (e.g., an infinite loop).","status":"published","published":"2020-09-14T19:15:11.333Z","modified":"2026-06-17T03:06:54.85Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-190","CWE-835"],"updated_at":"2026-11-02T14:06:14.981587Z"}],"osv":[{"id":"CVE-2020-25574","description":"An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() could result in denial of service (e.g., an infinite loop).","status":"published","published":"2020-09-14T19:15:11.333Z","modified":"2026-10-20T10:52:53.196608792Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:15.879068Z"},{"id":"DEBIAN-CVE-2020-25574","description":"An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() could result in denial of service (e.g., an infinite loop).","status":"published","published":"2020-09-14T19:15:11.333Z","modified":"2026-10-26T12:02:31.196438944Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:33.729655Z"},{"id":"GHSA-x7vr-c387-8w57","title":"Integer Overflow/Infinite Loop in the http crate","description":"HeaderMap::reserve() used usize::next_power_of_two() to calculate the increased capacity. However, next_power_of_two() silently overflows to 0 if given a sufficiently large number in release mode.\n\nIf the map was not empty when the overflow happens, the library will invoke self.grow(0) and start infinite probing. This allows an attacker who controls the argument to reserve() to cause a potential denial of service (DoS).\n\nThe flaw was corrected in 0.1.20 release of http crate.","status":"published","published":"2021-08-25T21:01:31Z","modified":"2026-09-10T03:49:15.774183736Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-190","CWE-835"],"updated_at":"2026-11-02T15:46:59.484835Z"},{"id":"GHSA-xvc9-xwgj-4cq9","title":"Duplicate Advisory: Integer Overflow in HeaderMap::reserve() can cause Denial of Service","description":"### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-x7vr-c387-8w57. This link is maintained to preserve external references.\n\n### Original Description\n\nHeaderMap::reserve() used usize::next_power_of_two() to calculate the increased capacity. However, next_power_of_two() silently overflows to 0 if given a sufficiently large number in release mode.\n\nIf the map was not empty when the overflow happens, the library will invoke self.grow(0) and start infinite probing. This allows an attacker who controls the argument to reserve() to cause a potential denial of service (DoS).\n\nThe flaw was corrected in 0.1.20 release of http crate.","status":"withdrawn","published":"2022-06-16T23:08:02Z","modified":"2024-02-21T19:50:55Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T15:47:00.604718Z"},{"id":"RUSTSEC-2019-0033","title":"Integer Overflow in HeaderMap::reserve() can cause Denial of Service","description":"`HeaderMap::reserve()` used `usize::next_power_of_two()` to calculate the increased capacity.\nHowever, `next_power_of_two()` silently overflows to 0 if given a sufficiently large number\nin release mode.\n\nIf the map was not empty when the overflow happens,\nthe library will invoke `self.grow(0)` and start infinite probing.\nThis allows an attacker who controls the argument to `reserve()`\nto cause a potential denial of service (DoS).\n\nThe flaw was corrected in 0.1.20 release of `http` crate.","status":"published","published":"2019-11-16T12:00:00Z","modified":"2023-11-08T04:01:32.294723Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:39.492624Z"},{"id":"UBUNTU-CVE-2020-25574","description":"An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() could result in denial of service (e.g., an infinite loop).","status":"published","published":"2020-09-14T19:15:00Z","modified":"2026-10-17T12:55:52.26324059Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:54:23.905183Z"}]}}
