Protocol::HTTP2 versions before 1.13 for Perl is vulnerable to a HTTP/2 Bomb.
Protocol::HTTP2s inbound HPACK path has no header-list size limit, so a small HTTP/2 request can expand into large server memory (the HTTP/2 bomb).
The headers_decode method materialises a full key+value copy per indexed reference with no running size check, and the stream_header_block_add method appends (since version 1.12) every CONTINUATION frame to the per-stream buffer unbounded.
MAX_HEADER_LIST_SIZE (default 65536) is advertised in SETTINGS but never consulted on decode. It is absent from the decoder and from the :limits export tag.
The product does not handle or incorrectly handles a compressed input with a very high compression ratio that produces a large output.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Protocol::http2 | Crux | * | 1.13 (excluding) |
| Libprotocol-http2-perl | Ubuntu | upstream | * |