RUSTSEC-2026-0389

Source
https://rustsec.org/advisories/RUSTSEC-2026-0389
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0389.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2026-0389
Aliases
Published
2026-10-20T12:00:00Z
Modified
2026-10-26T11:15:11Z
Severity
  • 8.7 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Pingora HTTP/2 server memory exhaustion through unbounded default header-list and concurrent-stream limits
Details

Pingora versions prior to 0.8.1 used the h2 crate's default HTTP/2 server limits, a 16 MiB decoded header-list size and no limit on concurrent streams, unless the application set its own. A remote, unauthenticated client can send 1-byte HPACK references to a near-empty header, making the server allocate hundreds of thousands of header fields per stream across an unlimited number of streams on one connection, and use HTTP/2 flow control to keep those streams open. This can exhaust memory and degrade or terminate the Pingora process.

This affects any Pingora service that terminates HTTP/2 (h2 or h2c) without explicitly setting max_header_list_size and max_concurrent_streams. The reporter showed that a single connection could get a Pingora process with a 2 GiB memory limit OOM-killed.

This flaw was corrected in commit d193c8d49b8b7c1c1ede93183759caa4f6906bbd. When no H2Options are supplied, Pingora now advertises and enforces a 64 KiB decoded header-list limit and at most 100 concurrent streams per connection. Users should upgrade to Pingora >= 0.8.1. Applications that supply their own H2Options are not covered by these defaults and must set max_header_list_size and max_concurrent_streams explicitly, or start from pingora_core::protocols::http::v2::server::default_h2_options(). H2Options::default() does not include these limits.

Note: Cloudflare CDN customers were unaffected, as internal Pingora services at Cloudflare do not have HTTP/2 clients.

Database specific
{
    "license":  "CC0-1.0"
}
References

Affected packages

crates.io / pingora-core

Package

Name
pingora-core
View open source insights on deps.dev
Purl
pkg:cargo/pingora-core

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0
Fixed
0.8.1

Ecosystem specific

{
    "affected_functions":  null,
    "affects":  {
        "arch":  [],
        "functions":  [],
        "os":  []
    }
}

Database specific

categories
[
    "denial-of-service"
]
cvss
"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"
informational
null
source
"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0389.json"