hpack: Unbounded variable integer decoding can cause run-away computation on malformed input
What fixes it
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Impact
Users of the python-hyper/hpack library, most commonly used as downstream dependency of the python-hyper/h2 library (an HTTP/2 client and server implementation). Unbounded variable integer decoding can cause run-away computation on malformed input leading to O(n^2) runtime, effectively blocking further processing with large enough unsanitized input.
Patches
A fix is available in python-hyper/hpack v4.2.0 to restricted variable integer decoding to uint32 to prevent run-away computation.
Workarounds
Sanitize input to hpack decoder for long sequences of 0xFF values to prevent malicious use.
Text from GitHub Advisory Database
Affected versions 15
- hpack, pip<= 4.1.0GitHub
- hpackaffected: < 4.2.0CVE List
- hpack, PyPIfrom first release, fixed in 4.2.0OSV
- hpack, PyPI1.0.0OSV
- hpack, PyPI1.0.1OSV
- hpack, PyPI1.1.0OSV
- hpack, PyPI2.0.0OSV
- hpack, PyPI2.0.1OSV
- hpack, PyPI2.1.0OSV
- hpack, PyPI2.1.1OSV
- hpack, PyPI2.2.0OSV
- hpack, PyPI2.3.0OSV
- hpack, PyPI3.0.0OSV
- hpack, PyPI4.0.0OSV
- hpack, PyPI4.1.0OSV
References 7
- github.com/python-hyper/hpack/commit/8cfb02c547740e16dbfe7aba77bad84b297cec2cFixvia CVE List
- github.com/python-hyper/hpack/releases/tag/v4.2.0Fixvia GitHub
- github.com/python-hyper/hpack/security/advisories/GHSA-8v8h-hg4w-mvq2Advisoryvia CVE List
- github.com/advisories/GHSA-8v8h-hg4w-mvq2Advisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-59980Referencevia GitHub
- cs.opensource.google/go/x/net/+/master:http2/hpack/hpack.go;l=468;drc=8e2b117aee74f6b86c207a808b0255de45c0a18aReferencevia CVE List
- docs.rs/http2/0.5.19/src/http2/hpack/decoder.rs.html#403Referencevia CVE List