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.03 - 2014-05-07

  • client-tls-anyevent.pl with NPN/ALPN support and server's push handling
  • fixed error handling (send only one GOAWAY)
  • fixed PUSH_RPOMISE/CONTINUATION state and headers handling
  • implemented PUSH_PROMISE decoder
  • implemented RST_STREAM encoder
  • server-tls-anyevent.pl with NPN/ALPN support
  • fixed Connection's send(): set END_STREAM flag for last DATA frame
  • fixed HEADERS/CONTINUATION logic
  • pending state change until all CONTINUATION frames received
  • fixed author

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