-----BEGIN PGP SIGNED MESSAGE----- NetBSD Security Advisory 2003-004 ================================= Topic: Format string vulnerability in zlib gzprintf() Version: NetBSD-current: source prior to March 5, 2003 NetBSD 1.6: affected NetBSD-1.5.3: affected NetBSD-1.5.2: affected NetBSD-1.5.1: affected NetBSD-1.5: affected pkgsrc: devel/zlib packages prior to zlib-1.1.4nb1 Severity: Privilege escalation in applications call using gzprintf(). (There are none in the base system.) Fixed: NetBSD-current: March 6, 2003 NetBSD-1.6 branch: March 6, 2003 (1.6.1 will include the fix) NetBSD-1.5 branch: March 6, 2003 pkgsrc devel/zlib: zlib-1.1.4nb1 corrects this issue Abstract ======== The gzprintf function in zlib did not do bounds checking on user supplied data. Depending on how the function is used in an application, malign source data can be designed to overflow a buffer and execute arbitrary code as the user of the application. gzprintf is not used in any program in the NetBSD system, but could be used by third party software, including pkgsrc. Technical Details ================= While many programs use zlib, most use only the decompression functionality. gzprintf is a compressing printf, and is rarely used, by comparison. Additionally, since network uses of zlib generally compress data going onto the network from the local host, it is unlikely that applications exist which would be remotely exploitable because of this bug. Local privilege escalation could be a concern, and while there are no instances of binaries in the base NetBSD system which use gzprintf, convincing someone to run a vulnerable application under their uid could be abused to gain their privileges. NetBSD Security-Officer is performing an audit of pkgsrc code to create a list of vulnerable pkgs, which will be marked in the audit-packages database, and added to this advisory. It is noteworthy that many third-party distribution files include their own copy of zlib, for use on operating systems which do not supply it. NetBSD pkgsrc uses the application's configure script (if any) and should detect and use the patched NetBSD zlib in those cases. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0107 Solutions and Workarounds ========================= The following instructions describe how to upgrade your zlib libraries by updating your source tree and rebuilding and installing a new version of zlib. * NetBSD-current: Systems running NetBSD-current dated from before 2003-03-05 should be upgraded to NetBSD-current dated 2003-03-06 or later. The following file needs to be updated from the netbsd-current CVS branch (aka HEAD): lib/libz/gzio.c To update from CVS, re-build, and re-install libz: # cd src # cvs update -d -P lib/libz/gzio.c # cd lib/libz # make USETOOLS=no cleandir dependall # make USETOOLS=no install * NetBSD 1.6: The binary distribution of NetBSD 1.6 is vulnerable. Systems running NetBSD 1.6 sources dated from before 2003-03-05 should be upgraded from NetBSD 1.6 sources dated 2003-03-06 or later. NetBSD 1.6.1 will include the fix. The following file needs to be updated from the netbsd-1-6 CVS branch: lib/libz/gzio.c To update from CVS, re-build, and re-install libz: # cd src # cvs update -d -P -r netbsd-1-6 lib/libz/gzio.c # cd lib/libz # make USETOOLS=no cleandir dependall # make USETOOLS=no install Alternatively, apply the following patch (with potential offset differences): ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2003-004-zlib-1.6.patch To patch, re-build and re-install zlib: # cd src/lib/libz # patch < /path/to/SA2003-004-zlib-1.6.patch # make USETOOLS=no cleandir dependall # make USETOOLS=no install * NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3: The binary distribution of NetBSD 1.5.3 is vulnerable. Systems running NetBSD 1.5, 1.5.1, 1.5.2, or 1.5.3 sources dated from before 2003-03-05 should be upgraded from NetBSD 1.5.* sources dated 2003-03-06 or later. The following directories need to be updated from the netbsd-1-5 CVS branch: lib/libz/gzio.c To update from CVS, re-build, and re-install zlib: # cd src # cvs update -d -P -r netbsd-1-5 lib/libz/gzio.c # cd lib/libz # make cleandir dependall # make install Alternatively, apply the following patch (with potential offset differences): ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2003-004-zlib-1.5.patch To patch, re-build and re-install zlib: # cd src/lib/libz # patch < /path/to/SA2003-004-zlib-1.5.patch # make cleandir dependall # make install Thanks To ========= Bill Squier for patches, Lubomir Sedlacik for notification. Revision History ================ 2003-03-26 Initial release 2003-03-27 Correct CVE URL, from Thomas Lotterer More Information ================ Advisories may be updated as new information becomes available. The most recent version of this advisory (PGP signed) can be found at ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2003-004.txt.asc Information about NetBSD and NetBSD security can be found at http://www.NetBSD.ORG/ and http://www.NetBSD.ORG/Security/. Copyright 2003, The NetBSD Foundation, Inc. All Rights Reserved. Redistribution permitted only in full, unmodified form. $NetBSD: NetBSD-SA2003-004.txt,v 1.6 2003/03/27 15:17:13 david Exp $ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (NetBSD) Comment: For info see http://www.gnupg.org iQCVAwUBPoMWNT5Ru2/4N2IFAQGD6wQAl137bQx3whfUavyoDVMcdjFDkvQbOsAv a/05C7m0Hbqu8L6fr69kO+HlbWBOzWl/SLpSF0oF6x7LyKqmnEEs4JV6Sr4di23s 3oQa/mN2fm8scTAwBBLmckg4jYVFyCzHWZh1bhDUnLvdTv3hJu7/Y/CUyXqzgrJa JO60YfTHFKo= =mDO4 -----END PGP SIGNATURE-----