Hi guys, Looks like it's time for another try at freetype. CVE-2006-3467 appears to be a potentially exploitable integer overflow in freetype's PCF parser. I've uploaded freetype_2.1.7-6 to <http://people.debian.org/~vorlon/freetype-DSA/>, replacing the previous version there; signed sources, unsigned changes. Please do whatever's necessary with the package to make it suitable for a DSA release -- I won't be uploading it at all to the security.d.o dak queue, given the poor outcome of my other recent attempts.
debdiff vs. 2.1.7-5 in stable (r3) is also attached to this mail, in case that's more convenient. Cheers, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/
diff -u freetype-2.1.7/debian/rules freetype-2.1.7/debian/rules --- freetype-2.1.7/debian/rules +++ freetype-2.1.7/debian/rules @@ -178,6 +178,9 @@ # Fix integer overflows (CVE-2006-2493) patch -p0 -i $(patchdir)/400-CVE-2006-2493_integer-overflows.diff + # Fix further integer overflows (CVE-2006-3467) + patch -p0 -i $(patchdir)/500-CVE-2006-3467_pcf-strlen.diff + cd $(freetype_u) && ./configure --prefix=/usr CFLAGS=\"$(CFLAGS)\" # cd $(freetype_u) && ./configure --prefix=/usr $(MAKE) -C $(freetype_u) diff -u freetype-2.1.7/debian/changelog freetype-2.1.7/debian/changelog --- freetype-2.1.7/debian/changelog +++ freetype-2.1.7/debian/changelog @@ -1,3 +1,12 @@ +freetype (2.1.7-6) stable-security; urgency=low + + * Add debian/patches-freetype/CVE-2006-3467_pcf-strlen.patch for + CVE-2006-3467, a missing string length check in PCF files that + leads to a possibly exploitable integer overflow. Thanks to Martin + Pitt for the patch. Closes: #379920. + + -- Steve Langasek <[EMAIL PROTECTED]> Tue, 12 Sep 2006 23:27:20 -0700 + freetype (2.1.7-5) stable; urgency=low * Backport the fix for bug #367579 (use CURDIR instead of PWD) so that only in patch2: unchanged: --- freetype-2.1.7.orig/debian/patches/500-CVE-2006-3467_pcf-strlen.diff +++ freetype-2.1.7/debian/patches/500-CVE-2006-3467_pcf-strlen.diff @@ -0,0 +1,34 @@ +Index: freetype-2.1.7/src/pcf/pcfread.c +=================================================================== +--- freetype-2.1.7.orig/src/pcf/pcfread.c 2006-07-26 12:59:30.000000000 +0200 ++++ freetype-2.1.7/src/pcf/pcfread.c 2006-07-26 12:59:46.000000000 +0200 +@@ -433,6 +433,14 @@ + + for ( i = 0; i < nprops; i++ ) + { ++ /* 2006:0500 (mbarnes) - Detect invalid string length. ++ * XXX Is this is best error code to return? */ ++ if ( props[i].name < 0 ) ++ { ++ error = FT_Err_Invalid_File_Format; ++ goto Bail; ++ } ++ + /* XXX: make atom */ + if ( FT_NEW_ARRAY( properties[i].name, + ft_strlen( strings + props[i].name ) + 1 ) ) +@@ -443,6 +451,14 @@ + + if ( props[i].isString ) + { ++ /* 2006:0500 (mbarnes) - Detect invalid string length. ++ * XXX Is this the best error code to return? */ ++ if ( props[i].value < 0 ) ++ { ++ error = FT_Err_Invalid_File_Format; ++ goto Bail; ++ } ++ + if ( FT_NEW_ARRAY( properties[i].value.atom, + ft_strlen( strings + props[i].value ) + 1 ) ) + goto Bail;
signature.asc
Description: Digital signature