Hi, I extracted a minimal patch from 1.4.5 for the Sarge security update. This has been assigned CVE-2006-3746.
Thanks, Martin -- Martin Pitt http://www.piware.de Ubuntu Developer http://www.ubuntu.com Debian Developer http://www.debian.org In a world without walls and fences, who needs Windows and Gates?
--- gnupg-1.4.4/g10/parse-packet.c 2006-06-25 10:58:40.000000000 +0000
+++ gnupg-1.4.5/g10/parse-packet.c 2006-07-26 10:39:16.000000000 +0000
@@ -2088,6 +2088,16 @@ parse_comment( IOBUF inp, int pkttype, u
{
byte *p;
+ /* Cap comment packet at a reasonable value to avoid an integer
+ overflow in the malloc below. Comment packets are actually not
+ anymore define my OpenPGP and we even stopped to use our
+ private comment packet. */
+ if (pktlen>65536)
+ {
+ log_error ("packet(%d) too large\n", pkttype);
+ iobuf_skip_rest (inp, pktlen, 0);
+ return G10ERR_INVALID_PACKET;
+ }
packet->pkt.comment = xmalloc(sizeof *packet->pkt.comment + pktlen - 1);
packet->pkt.comment->len = pktlen;
p = packet->pkt.comment->data;
@@ -2340,6 +2351,9 @@ parse_gpg_control( IOBUF inp, int pkttyp
if ( sesmark[i] != iobuf_get_noeof(inp) )
goto skipit;
}
+ if (pktlen > 4096)
+ goto skipit; /* Definitely too large. We skip it to avoid an
+ overflow in the malloc. */
if ( list_mode )
puts ("- gpg control packet");
signature.asc
Description: Digital signature

