[Pkg-openssl-changes] r383 - in openssl/trunk: debian ssl
Kurt Roeckx
kroeckx at alioth.debian.org
Wed May 27 19:05:14 UTC 2009
Author: kroeckx
Date: 2009-05-27 19:05:14 +0000 (Wed, 27 May 2009)
New Revision: 383
Modified:
openssl/trunk/debian/changelog
openssl/trunk/ssl/d1_both.c
Log:
Fix "DTLS fragment handling" (CVE-2009-1378)
Modified: openssl/trunk/debian/changelog
===================================================================
--- openssl/trunk/debian/changelog 2009-05-27 19:04:40 UTC (rev 382)
+++ openssl/trunk/debian/changelog 2009-05-27 19:05:14 UTC (rev 383)
@@ -4,6 +4,7 @@
* Make aes-x86_64.pl use PIC.
* Fix security issues (Closes: #530400)
- "DTLS record buffer limitation bug." (CVE-2009-1377)
+ - "DTLS fragment handling" (CVE-2009-1378)
-- Kurt Roeckx <kurt at roeckx.be> Sat, 16 May 2009 17:33:55 +0200
Modified: openssl/trunk/ssl/d1_both.c
===================================================================
--- openssl/trunk/ssl/d1_both.c 2009-05-27 19:04:40 UTC (rev 382)
+++ openssl/trunk/ssl/d1_both.c 2009-05-27 19:05:14 UTC (rev 383)
@@ -561,7 +561,16 @@
if ((msg_hdr->frag_off+frag_len) > msg_hdr->msg_len)
goto err;
- if (msg_hdr->seq <= s->d1->handshake_read_seq)
+ /* Try to find item in queue, to prevent duplicate entries */
+ memset(seq64be,0,sizeof(seq64be));
+ seq64be[6] = (unsigned char) (msg_hdr->seq>>8);
+ seq64be[7] = (unsigned char) msg_hdr->seq;
+ item = pqueue_find(s->d1->buffered_messages, seq64be);
+
+ /* Discard the message if sequence number was already there, is
+ * too far in the future or the fragment is already in the queue */
+ if (msg_hdr->seq <= s->d1->handshake_read_seq ||
+ msg_hdr->seq > s->d1->handshake_read_seq + 10 || item != NULL)
{
unsigned char devnull [256];
More information about the Pkg-openssl-changes
mailing list