CVE-2026-16028: CWE-401 Missing Release of Memory after Effective Lifetime
Protocol::HTTP2 versions before 1.14 for Perl contain a memory exhaustion vulnerability due to closed streams not being removed from the connection stream table. This causes residual entries to accumulate for the life of the connection, leading to increased memory usage. The SETTINGS_MAX_CONCURRENT_STREAMS setting does not limit this growth. A hostile peer can open and close streams indefinitely, causing significant memory retention on the server side.
AI Analysis
Technical Summary
Protocol::HTTP2 versions prior to 1.14 for Perl fail to release memory for closed streams because the stream_state function removes concurrency slots and clears most stream keys but leaves the stream entry in the connection stream table. Since stream identifiers increase monotonically and the entries are never removed, a peer can open and close streams repeatedly on a single connection, causing the connection's stream table to grow indefinitely. The SETTINGS_MAX_CONCURRENT_STREAMS setting only limits live streams, not the accumulation of closed streams. This results in memory exhaustion as each closed stream retains approximately 920 bytes, leading to substantial memory growth (e.g., about 88 MiB for 100,000 sequential streams).
Potential Impact
An attacker or hostile peer can cause memory exhaustion on a server using affected versions of Protocol::HTTP2 by repeatedly opening and closing streams on a single connection. This leads to unbounded memory growth on the server, potentially degrading performance or causing denial of service due to resource exhaustion. The vulnerability does not affect concurrency limits and can be exploited without exceeding live stream caps.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, consider limiting the lifetime or number of streams per connection at the application level or using external controls to mitigate memory growth. Monitor for updates from the Protocol::HTTP2 maintainers regarding an official fix.
CVE-2026-16028: CWE-401 Missing Release of Memory after Effective Lifetime
Description
Protocol::HTTP2 versions before 1.14 for Perl contain a memory exhaustion vulnerability due to closed streams not being removed from the connection stream table. This causes residual entries to accumulate for the life of the connection, leading to increased memory usage. The SETTINGS_MAX_CONCURRENT_STREAMS setting does not limit this growth. A hostile peer can open and close streams indefinitely, causing significant memory retention on the server side.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Protocol::HTTP2 versions prior to 1.14 for Perl fail to release memory for closed streams because the stream_state function removes concurrency slots and clears most stream keys but leaves the stream entry in the connection stream table. Since stream identifiers increase monotonically and the entries are never removed, a peer can open and close streams repeatedly on a single connection, causing the connection's stream table to grow indefinitely. The SETTINGS_MAX_CONCURRENT_STREAMS setting only limits live streams, not the accumulation of closed streams. This results in memory exhaustion as each closed stream retains approximately 920 bytes, leading to substantial memory growth (e.g., about 88 MiB for 100,000 sequential streams).
Potential Impact
An attacker or hostile peer can cause memory exhaustion on a server using affected versions of Protocol::HTTP2 by repeatedly opening and closing streams on a single connection. This leads to unbounded memory growth on the server, potentially degrading performance or causing denial of service due to resource exhaustion. The vulnerability does not affect concurrency limits and can be exploited without exceeding live stream caps.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, consider limiting the lifetime or number of streams per connection at the application level or using external controls to mitigate memory growth. Monitor for updates from the Protocol::HTTP2 maintainers regarding an official fix.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-07-17T08:26:33.147Z
- Cvss Version
- null
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a9f0812acd9273b492233b3
Added to database: 09/07/2026, 18:53:06 UTC
Last enriched: 09/07/2026, 19:07:49 UTC
Last updated: 09/07/2026, 19:07:49 UTC
Views: 4
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.