Security Advisories (1)
CVE-2026-10725 (2026-06-06)

Protocol::HTTP2 versions before 1.13 for Perl is vulnerable to a HTTP/2 Bomb. Protocol::HTTP2's 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.

Changes for version 0.05 - 2014-05-11

  • implemented flow control
  • implemented WINDOW_UPDATE encoder/decoder
  • fixed MAX_PAYLOAD_SIZE constant
  • fixed runtime error in RST_STREAM
  • required MIME::Base64 >= 3.11 (encode_base64url and decode_base64url)
  • HTTP/1.1 Upgrade for client

Documentation

Modules

HTTP/2 protocol (draft 12) implementation

Provides

in lib/Protocol/HTTP2/Client.pm
in lib/Protocol/HTTP2/Connection.pm
in lib/Protocol/HTTP2/Constants.pm
in lib/Protocol/HTTP2/Frame.pm
in lib/Protocol/HTTP2/Frame/Altsvc.pm
in lib/Protocol/HTTP2/Frame/Blocked.pm
in lib/Protocol/HTTP2/Frame/Continuation.pm
in lib/Protocol/HTTP2/Frame/Data.pm
in lib/Protocol/HTTP2/Frame/Goaway.pm
in lib/Protocol/HTTP2/Frame/Headers.pm
in lib/Protocol/HTTP2/Frame/Ping.pm
in lib/Protocol/HTTP2/Frame/Priority.pm
in lib/Protocol/HTTP2/Frame/Push_promise.pm
in lib/Protocol/HTTP2/Frame/Rst_stream.pm
in lib/Protocol/HTTP2/Frame/Settings.pm
in lib/Protocol/HTTP2/Frame/Window_update.pm
in lib/Protocol/HTTP2/HeaderCompression.pm
in lib/Protocol/HTTP2/Huffman.pm
in lib/Protocol/HTTP2/HuffmanCodes.pm
in lib/Protocol/HTTP2/Server.pm
in lib/Protocol/HTTP2/StaticTable.pm
in lib/Protocol/HTTP2/Stream.pm
in lib/Protocol/HTTP2/Trace.pm
in lib/Protocol/HTTP2/Upgrade.pm