CVE-2026-16028: Protocol::HTTP2 versions before 1.14 for Perl allow memory exhaustion via closed streams that stream_state never removes from the connection stream table
CVE-2026-16028: Protocol::HTTP2 Perl library before 1.14 lets closed streams linger in the connection table, enabling remote memory exhaustion.
Protocol::HTTP2 versions before 1.14 for Perl allow memory exhaustion because closed streams are never removed from the connection stream table by stream_state. The flaw was disclosed on oss-security by Robert Rothenberg on September 7, 2026. Users should upgrade to Protocol-HTTP2 1.14 or later on CPAN.
- Closed streams accumulate in the connection stream table, enabling remote memory-exhaustion DoS
- Fixed in Protocol::HTTP2 1.14, available on CPAN
- Disclosed on the oss-security mailing list on September 7, 2026
Vulnerabilities mentionedAll →
| CVE | Vulnerability | CVSS | EPSS | Flags | Affected | Exposure | Published |
|---|---|---|---|---|---|---|---|
| CVE-2026-16028 | Memory exhaustion DoS in Protocol::HTTP2 Perl module before 1.14 Protocol::HTTP2 versions before 1.14 for Perl never removes CLOSED streams from the per-connection stream table: when a stream closes, stream_state releases its concurrency slot and clears the stream's contents but leaves the table entry in place, and nothing in the distribution deletes it (CWE-401). A remote peer triggers this by opening and closing ordinary, accepted streams in sequence on one HTTP/2 connection; roughly 920 bytes are retained per closed stream, so 100,000 sequential streams grow server resident memory by about 88 MiB, and SETTINGS_MAX_CONCURRENT_STREAMS does not bound the growth because it only caps simultaneously live streams. The residual entries accumulate for the life of the connection, so an unauthenticated attacker can drive the process into memory exhaustion and cause a denial of service (availability impact only, CVSS 7.5). Both sides are affected: servers grow the table against a hostile client, and clients built on the module grow it the same way against a hostile server. Any operator of a Perl service or client using Protocol::HTTP2 is exposed; there is no public PoC, the flaw is not in CISA KEV, and EPSS rates 30-day exploitation probability at 0.6%, so no exploitation is known. Do: Inventory Perl servers and clients that load Protocol::HTTP2 and upgrade the module to 1.14 or later. As interim mitigation, bound per-connection lifetime (for example, cap requests or streams per connection and enforce idle timeouts at a front-end proxy) and monitor resident memory of processes speaking HTTP/2 with this module; note that WAF filtering offers little protection because the attack uses fully accepted, ordinary requests. | 7.5 | <1% |
| nichelikely hundreds to low thousands of deployments (niche CPAN module; no public install counts) |
Posted by Robert Rothenberg on Sep 07 ======================================================================== https://metacpan.org/dist/Protocol-HTTP2 VCS Repo: ...
This source does not provide full text. Read it at seclists.org.