PT-2019-16425 · Rust · Http Crate

Published

2019-11-16

·

Updated

2022-06-16

·

CVE-2019-25008

CVSS v3.1

7.5

High

VectorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Name of the Vulnerable Software and Affected Versions http crate versions prior to 0.1.20
Description The issue arises from the HeaderMap::reserve() function using 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. If 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).
Recommendations For versions prior to 0.1.20, update to version 0.1.20 or later to resolve the issue. As a temporary workaround, consider restricting the use of the reserve() function to prevent potential denial of service attacks. Avoid using the reserve() function with large arguments until the issue is resolved.

Fix

Infinite Loop

Integer Overflow

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2019-25008
GHSA-X7VR-C387-8W57
GHSA-XVC9-XWGJ-4CQ9
RUSTSEC-2019-0033

Affected Products

Http Crate