GHSA-h2v8-394m-p7vvLow· 3.7▾ SunlitRustls: Brotli certificate decompression can allocate an attacker-controlled amount of memory up to 1 GiB before authentication.
▾ Sunlit zone — Low / medium · no exploitation signal
impact 20.4 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
The built-in (but disabled by default) Brotli certificate decoder bounds the output buffer but accepts an input-selected history window. A header of five bytes can specify a 1 GiB window allocation. A peer can abort a process whose allocator cannot satisfy that request. A client must enable Brotli and connect to the peer; a server must enable Brotli and request a client certificate. Neither direction requires a trusted attacker certificate.
rustls calls BrotliDecompress which enables Brotli's large-window extension. rustls applies a limit to certificates, but this applies to the decompressed result, and not to any internal allocations the process requires.
Client applications that enable the brotli feature will be vulnerable to malicious servers. Server applications that enable the brotli feature and enable client authentication will be vulnerable to malicious clients.
Potential for denial of service due to memory exhaustion from peers sending malicious Brotli-encoded certificates, for applications that enable Brotli decompression.
Thanks to OpenAI [email protected] for the disclosure.
rustls < 0.23.46rustls >= 0.24.0-dev.1, < 0.24.0-dev.2Upgrade to a patched release:
rustls 0.23.46rustls 0.24.0-dev.2Connected by shared product, vendor, weakness, or advisory.
GHSA-c8m5-c952-6cm4Medium· 4.0Rustls: Session Debug formatting exposes TLS master secrets and resumption PSKs
GHSA-vp88-798v-h67fLow· 2.3rustls: ECH rejection can expose buffered application data to authenticated outer server before `ech_required` alert
GHSA-w44r-93j7-qv28Low· 3.7rustls: An unauthenticated ServerHello poisons the per-name key-exchange record, so later ClientHellos carry only a classical X25519 share
RUSTSEC-2026-0348Low· 3.7Brotli certificate decompression can allocate up to 1 GiB before authentication
GHSA-2mjx-qc3c-rqvcMedium· 5.3Rustls: TLS 1.3 handshake messages incorrectly accepted across encryption level boundaries
RUSTSEC-2026-0347Low· 2.3Buffered application data sent to outer server after ECH rejection