]> git.deb.at Git - rhonda/impostor.hazel.git/commitdiff
Drop records that are too small to be decrypted
authorMatthew Endsley <mendsley@gmail.com>
Wed, 31 Mar 2021 19:02:49 +0000 (12:02 -0700)
committerMatthew Endsley <mendsley@gmail.com>
Wed, 31 Mar 2021 19:05:37 +0000 (12:05 -0700)
Hazel/Dtls/DtlsConnectionListener.cs

index 32c7835b7450c98feae0feb41fa8aedc2120db4f..69d01aa4697aab148560ca6f96f218476eb251dd 100644 (file)
@@ -358,6 +358,12 @@ namespace Hazel.Dtls
 
                     // Validate record authenticity
                     int decryptedSize = peer.CurrentEpoch.RecordProtection.GetDecryptedSize(recordPayload.Length);
+                    if (decryptedSize < 0)
+                    {
+                        this.Logger.WriteInfo($"Dropping malformed record: Length {recordPayload.Length} Decrypted length: {decryptedSize}");
+                        continue;
+                    }
+
                     ByteSpan decryptedPayload = recordPayload.ReuseSpanIfPossible(decryptedSize);
 
                     if (!peer.CurrentEpoch.RecordProtection.DecryptCiphertextFromClient(decryptedPayload, recordPayload, ref record))