7.5high

CVE-2016-6581

HPACK Denial of Service vulnerability (HPACK Bomb)

Also known as GHSA-ffq8-576r-v26g, PYSEC-2017-87

Published 9 y ago · modified 4 mo ago · JSON

CVSS
7.5
v3.0 · NVD
CISA KEV
No
not known exploited
EPSS
1.9%
percentile 80%
Public exploits
0
none known

Summary

A HTTP/2 implementation built using any version of the Python HPACK library between v1.0.0 and v2.2.0 could be targeted for a denial of service attack, specifically a so-called "HPACK Bomb" attack. This attack occurs when an attacker inserts a header field that is exactly the size of the HPACK dynamic header table into the dynamic header table. The attacker can then send a header block that is simply repeated requests to expand that field in the dynamic table. This can lead to a gigantic compression ratio of 4,096 or better, meaning that 16kB of data can decompress to 64MB of data on the target machine.

Exploit prediction (EPSS)

1.88% probability of exploitation in the next 30 days, higher than 80% of all scored CVEs.

CVSS scores

Assigned byVersionScoreVector
NVD3.07.5CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
NVD2.07.8AV:N/AC:L/Au:N/C:N/I:N/A:C
GitHub3.17.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Affected packages

EcosystemPackageAffectedFixed in
pypihpack
>=1.0.0, <2.3.0
<2.3.0
2.3.0

Classification

Weakness

References

  • securityfocus.com /bid/92315 · vdb-entry, x_refsource_BID, x_transferred
  • python-hyper.org /hpack/en/latest/security/CVE-2016-6581.html · x_refsource_CONFIRM, x_transferred
  • nvd.nist.gov /vuln/detail/CVE-2016-6581 · advisory
  • github.com /advisories/GHSA-ffq8-576r-v26g · advisory
  • github.com /pypa/advisory-database/tree/main/vulns/hpack/PYSEC-2017-87.yaml · web
  • github.com /python-hyper/hpack · package
  • web.archive.org /web/20200227233559/http://www.securityfocus.com/bid/92315 · web
  • python-hyper.org /projects/hpack/en/stable/security/CVE-2016-6581.html · web

Sources

vulnwire keeps one entry per vulnerability: the CVE id wins, then GHSA; records that alias each other are merged. Machine-readable: JSON.