DTLS handshake reassembler allocates buffer from unchecked 24-bit length
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 …