Version bump for the binfmt_elf security vulnerability, bug #70681.
authorTim Yamin <plasmaroo@gentoo.org>
Fri, 12 Nov 2004 20:23:11 +0000 (20:23 +0000)
committerTim Yamin <plasmaroo@gentoo.org>
Fri, 12 Nov 2004 20:23:11 +0000 (20:23 +0000)
sys-kernel/usermode-sources/ChangeLog
sys-kernel/usermode-sources/Manifest
sys-kernel/usermode-sources/files/digest-usermode-sources-2.4.26-r8 [moved from sys-kernel/usermode-sources/files/digest-usermode-sources-2.4.26-r7 with 100% similarity]
sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.8.1-r3 [moved from sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.8.1-r2 with 100% similarity]
sys-kernel/usermode-sources/files/usermode-sources-2.4.binfmt_elf.patch [new file with mode: 0644]
sys-kernel/usermode-sources/files/usermode-sources-2.6.binfmt_elf.patch [new file with mode: 0644]
sys-kernel/usermode-sources/usermode-sources-2.4.26-r8.ebuild [moved from sys-kernel/usermode-sources/usermode-sources-2.4.26-r7.ebuild with 94% similarity]
sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r3.ebuild [moved from sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r2.ebuild with 86% similarity]

index 467c0893f461470a28621ba19eb4860f710c6281..a333b114666890300f3c2ae68acfa5c8a6c144f5 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for sys-kernel/usermode-sources
 # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.49 2004/11/09 20:14:23 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.50 2004/11/12 20:23:10 plasmaroo Exp $
+
+*usermode-sources-2.6.8.1-r3 (12 Nov 2004)
+
+  12 Nov 2004; <plasmaroo@gentoo.org> -usermode-sources-2.4.26-r7.ebuild,
+  +usermode-sources-2.4.26-r8.ebuild, -usermode-sources-2.6.8.1-r2.ebuild,
+  +usermode-sources-2.6.8.1-r3.ebuild,
+  +files/usermode-sources-2.4.binfmt_elf.patch,
+  +files/usermode-sources-2.6.binfmt_elf.patch:
+  Version bump for the binfmt_elf security vulnerability, bug #70681.
 
 *usermode-sources-2.6.8.1-r2 (09 Nov 2004)
 
index bcb77c3bf07c6d19a52696c0f211e95d803f07fa..2b7b775b5fed43877fee2a28156ecb99e0273e1b 100644 (file)
@@ -1,18 +1,20 @@
-MD5 e0567ce81e48c3b62f4c14c9a1f8827f ChangeLog 13022
+MD5 1563924f53c4f73b988b857d308eab9d ChangeLog 13421
 MD5 a76f13cb946fc2720c04b189616da2de metadata.xml 159
-MD5 603cfcd7cd36e605261c46533cbee4b5 usermode-sources-2.6.8.1-r2.ebuild 1021
-MD5 50d34e508fda7242cbc6a92356a4f59e usermode-sources-2.4.26-r7.ebuild 2636
+MD5 cf3830767faf26ed8ac8fc2f7f1c8d46 usermode-sources-2.4.26-r8.ebuild 2730
+MD5 324d50c01ed451b3cf4eed2f79050516 usermode-sources-2.6.8.1-r3.ebuild 1061
 MD5 d1ccc2047be533c992f67270a150a210 files/usermode-sources-2.4.cmdlineLeak.patch 388
 MD5 9c816c892d6e3d3f0b7b77d3d503ab10 files/usermode-sources-2.4.24.CAN-2004-0075.patch 634
 MD5 174438d215b70cad5ffb00ca8123c062 files/usermode-sources-2.4.24.munmap.patch 837
-MD5 5748125eb42554148c90a042a7454065 files/digest-usermode-sources-2.6.8.1-r2 214
 MD5 c460ea130cb4ae84a5063ba044e3ce72 files/usermode-sources-2.4.24.CAN-2004-0427.patch 460
 MD5 147fec50180ad91b6260fc7201dcb90f files/usermode-sources-2.4.24.CAN-2004-0010.patch 6050
 MD5 dc18e982f8149588a291956481885a8c files/usermode-sources-2.4.CAN-2004-0495.patch 17549
-MD5 054d55975dd07c5a434e0ccfcf26f682 files/digest-usermode-sources-2.4.26-r7 297
+MD5 5748125eb42554148c90a042a7454065 files/digest-usermode-sources-2.6.8.1-r3 214
 MD5 de75cfa969ed092578d9ddda6c5be334 files/usermode-sources-2.4.24.CAN-2004-0181.patch 1233
+MD5 054d55975dd07c5a434e0ccfcf26f682 files/digest-usermode-sources-2.4.26-r8 297
 MD5 ac42024b6e6ee1e2165914db4b22a61c files/usermode-sources-2.4.24.CAN-2004-0178.patch 424
 MD5 d4a740ae56c2049247083af387a22a85 files/usermode-sources-2.4.26.CAN-2004-0394.patch 350
+MD5 24c53f49954dab29cfc172d4a3ba1a31 files/usermode-sources-2.4.binfmt_elf.patch 1928
+MD5 1ee8ba8362089c31fdd7d88b32eaf63e files/usermode-sources-2.6.binfmt_elf.patch 1938
 MD5 60d25ff310fc6abfdce39ec9e47345af files/usermode-sources-2.4.CAN-2004-0685.patch 2809
 MD5 0f66013f643c79c97fda489618a4e2fd files/usermode-sources-2.4.CAN-2004-0535.patch 476
 MD5 c2510fe1891f5a9effb12c2196922206 files/usermode-sources-2.6.cmdlineLeak.patch 281
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.4.binfmt_elf.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.4.binfmt_elf.patch
new file mode 100644 (file)
index 0000000..534e4c0
--- /dev/null
@@ -0,0 +1,72 @@
+--- linux-2.4.27/fs/binfmt_elf.c       2004-11-10 12:25:16 -08:00
++++ linux-2.4.27-plasmaroo/fs/binfmt_elf.c     2004-11-10 12:25:16 -08:00
+@@ -335,9 +335,12 @@
+               goto out;
+ 
+       retval = kernel_read(interpreter,interp_elf_ex->e_phoff,(char *)elf_phdata,size);
+-      error = retval;
+-      if (retval < 0)
++      error = -EIO;
++      if (retval != size) {
++              if (retval < 0)
++                      error = retval; 
+               goto out_close;
++      }
+ 
+       eppnt = elf_phdata;
+       for (i=0; i<interp_elf_ex->e_phnum; i++, eppnt++) {
+@@ -532,8 +535,11 @@
+               goto out;
+ 
+       retval = kernel_read(bprm->file, elf_ex.e_phoff, (char *) elf_phdata, size);
+-      if (retval < 0)
++      if (retval != size) {
++              if (retval >= 0)
++                      retval = -EIO;
+               goto out_free_ph;
++      }
+               
+       files = current->files;         /* Refcounted so ok */
+       retval = unshare_files();
+@@ -580,8 +586,14 @@
+                       retval = kernel_read(bprm->file, elf_ppnt->p_offset,
+                                          elf_interpreter,
+                                          elf_ppnt->p_filesz);
+-                      if (retval < 0)
++                      if (retval != elf_ppnt->p_filesz) {
++                              if (retval >= 0)
++                                      retval = -EIO;
+                               goto out_free_interp;
++                      }
++                      /* make sure path is NULL terminated */
++                      elf_interpreter[elf_ppnt->p_filesz - 1] = '\0';
++
+                       /* If the program interpreter is one of these two,
+                        * then assume an iBCS2 image. Otherwise assume
+                        * a native linux image.
+@@ -616,8 +628,11 @@
+                       if (IS_ERR(interpreter))
+                               goto out_free_interp;
+                       retval = kernel_read(interpreter, 0, bprm->buf, BINPRM_BUF_SIZE);
+-                      if (retval < 0)
++                      if (retval != BINPRM_BUF_SIZE) {
++                              if (retval >= 0)
++                                      retval = -EIO;
+                               goto out_free_dentry;
++                      }
+ 
+                       /* Get the exec headers */
+                       loc->interp_ex = *((struct exec *) bprm->buf);
+@@ -776,8 +791,10 @@
+               }
+ 
+               error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, elf_prot, elf_flags);
+-              if (BAD_ADDR(error))
+-                      continue;
++              if (BAD_ADDR(error)) {
++                      send_sig(SIGKILL, current, 0);
++                      goto out_free_dentry;
++              }
+ 
+               if (!load_addr_set) {
+                       load_addr_set = 1;
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.binfmt_elf.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.binfmt_elf.patch
new file mode 100644 (file)
index 0000000..9ca2367
--- /dev/null
@@ -0,0 +1,72 @@
+--- linux-2.6.7-uc0-r8/fs/binfmt_elf.c 2004-11-12 11:50:08 -08:00
++++ linux-2.6.7-uc0-r8-plasmaroo/fs/binfmt_elf.c       2004-11-12 11:50:08 -08:00
+@@ -335,9 +335,12 @@
+               goto out;
+ 
+       retval = kernel_read(interpreter,interp_elf_ex->e_phoff,(char *)elf_phdata,size);
+-      error = retval;
+-      if (retval < 0)
++      error = -EIO;
++      if (retval != size) {
++              if (retval < 0)
++                      error = retval; 
+               goto out_close;
++      }
+ 
+       eppnt = elf_phdata;
+       for (i=0; i<interp_elf_ex->e_phnum; i++, eppnt++) {
+@@ -532,8 +535,11 @@
+               goto out;
+ 
+       retval = kernel_read(bprm->file, elf_ex.e_phoff, (char *) elf_phdata, size);
+-      if (retval < 0)
++      if (retval != size) {
++              if (retval >= 0)
++                      retval = -EIO;
+               goto out_free_ph;
++      }
+ 
+       files = current->files;         /* Refcounted so ok */
+       retval = unshare_files();
+@@ -580,8 +586,14 @@
+                       retval = kernel_read(bprm->file, elf_ppnt->p_offset,
+                                          elf_interpreter,
+                                          elf_ppnt->p_filesz);
+-                      if (retval < 0)
++                      if (retval != elf_ppnt->p_filesz) {
++                              if (retval >= 0)
++                                      retval = -EIO;
+                               goto out_free_interp;
++                      }
++                      /* make sure path is NULL terminated */
++                      elf_interpreter[elf_ppnt->p_filesz - 1] = '\0';
++
+                       /* If the program interpreter is one of these two,
+                        * then assume an iBCS2 image. Otherwise assume
+                        * a native linux image.
+@@ -616,8 +628,11 @@
+                       if (IS_ERR(interpreter))
+                               goto out_free_interp;
+                       retval = kernel_read(interpreter, 0, bprm->buf, BINPRM_BUF_SIZE);
+-                      if (retval < 0)
++                      if (retval != BINPRM_BUF_SIZE) {
++                              if (retval >= 0)
++                                      retval = -EIO;
+                               goto out_free_dentry;
++                      }
+ 
+                       /* Get the exec headers */
+                       loc->interp_ex = *((struct exec *) bprm->buf);
+@@ -776,8 +791,10 @@
+               }
+ 
+               error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, elf_prot, elf_flags);
+-              if (BAD_ADDR(error))
+-                      continue;
++              if (BAD_ADDR(error)) {
++                      send_sig(SIGKILL, current, 0);
++                      goto out_free_dentry;
++              }
+ 
+               if (!load_addr_set) {
+                       load_addr_set = 1;
similarity index 94%
rename from sys-kernel/usermode-sources/usermode-sources-2.4.26-r7.ebuild
rename to sys-kernel/usermode-sources/usermode-sources-2.4.26-r8.ebuild
index 379247e9874af2f652d52dc4204a0f8498872a3d..6e7fe2ce8df923cb9c531186510d893e6572d2d5 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.4.26-r7.ebuild,v 1.1 2004/11/09 20:14:23 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.4.26-r8.ebuild,v 1.1 2004/11/12 20:23:10 plasmaroo Exp $
 
 ETYPE="sources"
 inherit kernel eutils
@@ -44,6 +44,7 @@ src_unpack() {
        epatch ${FILESDIR}/${PN}-2.4.FPULockup-53804.patch || die "Failed to apply FPU-lockup patch!"
        epatch ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!"
        epatch ${FILESDIR}/${PN}-2.4.XDRWrapFix.patch || die "Failed to apply the kNFSd XDR patch!"
+       epatch ${FILESDIR}/${PN}-2.4.binfmt_elf.patch || die "Failed to apply the binfmt_elf patch!"
        kernel_universal_unpack
 }
 
similarity index 86%
rename from sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r2.ebuild
rename to sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r3.ebuild
index 0468a3b015f5d3a419a2d655264edcc9336cc53b..09718936c9f8a8de94e367566c3ddb996a5afb1b 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r2.ebuild,v 1.1 2004/11/09 20:14:23 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r3.ebuild,v 1.1 2004/11/12 20:23:10 plasmaroo Exp $
 
 K_NOUSENAME="yes"
 ETYPE="sources"
@@ -16,7 +16,8 @@ IUSE=""
 UNIPATCH_LIST="${DISTDIR}/${UML_PATCH}.bz2
        ${DISTDIR}/linux-${OKV}-CAN-2004-0814.patch
        ${FILESDIR}/${PN}-2.6.cmdlineLeak.patch
-       ${FILESDIR}/${PN}-2.6.devPtmx.patch"
+       ${FILESDIR}/${PN}-2.6.devPtmx.patch
+       ${FILESDIR}/${PN}-2.6.binfmt_elf.patch"
 
 DESCRIPTION="Full (vanilla) sources for the User Mode Linux kernel"
 SRC_URI="mirror://kernel/linux/kernel/v2.6/linux-${PV}.tar.bz2