CVE-2026-59646: DTLS handshake reassembler allocates buffer from unchecked 24-bit length
(updated )
Affects Bouncy Castle for Java before 1.85. DTLSReliableHandshake.processRecord() allocates a reassembly buffer sized from the 24-bit handshake length field of an incoming record, without the maximum-message-size check the stream-TLS path applies. Up to sixteen message sequences may be buffered per connection, so a single record of about 205 bytes carrying sixteen fragment headers with a maximal length forces roughly 256 MiB of allocation before any authentication. A few small UDP datagrams can drive the JVM to OutOfMemoryError.
References
Code Behaviors & Features
Detect and mitigate CVE-2026-59646 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →