{"id":"CVE-2026-123610","aliases":["GHSA-h2v8-394m-p7vv","RUSTSEC-2026-0348"],"title":"Rustls: Brotli certificate decompression can allocate an attacker-controlled amount of memory up to 1 GiB before authentication.","summary":"Rustls: Brotli certificate decompression can allocate an attacker-controlled amount of memory up to 1 GiB before authentication.","severity":"low","cvss":3.7,"cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","vendor":"rustls","product":"rustls","ecosystem":"rust","affected":["rustls < 0.23.46","rustls >= 0.24.0-dev.1, < 0.24.0-dev.2"],"patched":["rustls 0.23.46","rustls 0.24.0-dev.2"],"published":"2026-10-27","updated":"2026-11-08","sourceUpdated":"2026-11-08T10:55:59.261359726Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-h2v8-394m-p7vv","references":[{"url":"https://github.com/rustls/rustls/security/advisories/GHSA-h2v8-394m-p7vv"},{"url":"https://github.com/rustls/rustls/pull/3297"},{"url":"https://github.com/rustls/rustls/pull/3354"},{"url":"https://github.com/rustls/rustls/commit/1aa987af37d0d79b98781d345895ac0059ce345c"},{"url":"https://github.com/rustls/rustls/commit/402b7b78b7ae87d59e19cf07ee07f3fc19e6537e"},{"url":"https://github.com/rustls/rustls"},{"url":"https://github.com/rustls/rustls/releases/tag/v/0.23.46"},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0348.html"},{"url":"https://crates.io/crates/rustls"},{"url":"https://www.vulncheck.com/advisories/rustls-before-0.23.46-denial-of-service-via-brotli-certificate-decompression","label":"VulnCheck Advisory: rustls before 0.23.46 Denial of Service via Brotli Certificate Decompression"}],"tags":["osv","rust","cve.org"],"epss":0.00165,"epssPercentile":0.05803,"cwe":["CWE-770"],"ingestedAt":"2026-11-08T02:43:18.638Z","slug":"CVE-2026-123610","body":"## Overview\n\n### Summary\n\nThe 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.\n\n### Details\n\nrustls 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.\n\n### Impact\n\nClient 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.\n\nPotential for denial of service due to memory exhaustion from peers sending malicious Brotli-encoded certificates, for applications that enable Brotli decompression.\n\n### Acknowledgement\nThanks to OpenAI [OutboundDisclosures@openai.com](mailto:OutboundDisclosures@openai.com) for the disclosure.\n\n## Affected packages\n\n- `rustls < 0.23.46`\n- `rustls >= 0.24.0-dev.1, < 0.24.0-dev.2`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `rustls 0.23.46`\n- `rustls 0.24.0-dev.2`","depth":"sunlit","depthScore":20,"depthScoreParts":{"impact":20.4,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}