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.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Hpack | Python | 1.0 (including) | 1.0 (including) |
Hpack | Python | 2.0 (including) | 2.0 (including) |
Hpack | Python | 2.0.1 (including) | 2.0.1 (including) |
Hpack | Python | 2.1.1 (including) | 2.1.1 (including) |
Hpack | Python | 2.2 (including) | 2.2 (including) |
Hyper | Python | 0.4 (including) | 0.4 (including) |
Hyper | Python | 0.6 (including) | 0.6 (including) |
Python-hpack | Ubuntu | artful | * |
Python-hpack | Ubuntu | esm-apps/xenial | * |
Python-hpack | Ubuntu | xenial | * |
Python-hpack | Ubuntu | yakkety | * |
Python-hpack | Ubuntu | zesty | * |