- local kernel DoS CAN-2004-1016
authorNed Ludd <solar@gentoo.org>
Wed, 15 Dec 2004 06:59:46 +0000 (06:59 +0000)
committerNed Ludd <solar@gentoo.org>
Wed, 15 Dec 2004 06:59:46 +0000 (06:59 +0000)
sys-kernel/grsec-sources/ChangeLog
sys-kernel/grsec-sources/Manifest
sys-kernel/grsec-sources/files/CAN-2004-1016.patch [new file with mode: 0644]
sys-kernel/grsec-sources/files/digest-grsec-sources-2.4.27.2.0.1-r4 [deleted file]
sys-kernel/grsec-sources/files/digest-grsec-sources-2.4.28.2.0.2-r2 [moved from sys-kernel/grsec-sources/files/digest-grsec-sources-2.4.28.2.0.2 with 100% similarity]
sys-kernel/grsec-sources/grsec-sources-2.4.27.2.0.1-r4.ebuild [deleted file]
sys-kernel/grsec-sources/grsec-sources-2.4.28.2.0.2-r2.ebuild [moved from sys-kernel/grsec-sources/grsec-sources-2.4.28.2.0.2.ebuild with 85% similarity]

index 9e41d9d00e089cc6756cd24ebafca4b0c8edf9b6..0bc594da810a1073df92798ca4dee2bfbfa6d6cf 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for sys-kernel/grsec-sources
 # Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/grsec-sources/ChangeLog,v 1.38 2004/12/13 17:36:09 solar Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/grsec-sources/ChangeLog,v 1.39 2004/12/15 06:59:46 solar Exp $
+
+*grsec-sources-2.4.28.2.0.2-r2 (15 Dec 2004)
+
+  15 Dec 2004; <solar@gentoo.org> +files/CAN-2004-1016.patch,
+  -grsec-sources-2.4.27.2.0.1-r4.ebuild,
+  +grsec-sources-2.4.28.2.0.2-r2.ebuild, -grsec-sources-2.4.28.2.0.2.ebuild:
+  - local kernel DoS CAN-2004-1016
 
 *grsec-sources-2.4.28.2.0.2-r1 (13 Dec 2004)
 
index 1cd1a6c25ba4b75a67d8757583cd702996ae442d..7ad08b64fd7432c1dc23c0d413406519bba3fe84 100644 (file)
@@ -2,23 +2,22 @@
 Hash: SHA1
 
 MD5 cd30257dfb2bafb1560f0ce3b2b68cbf grsec-sources-2.4.28.2.0.2-r1.ebuild 1253
-MD5 17008d2d71faef9a97b8a2ce86f455ef grsec-sources-2.4.27.2.0.1-r4.ebuild 1738
-MD5 7b224fc44044267d7d658337926ef322 grsec-sources-2.4.28.2.0.2.ebuild 1202
-MD5 a78dc3d996298501c32772e017ba18b2 ChangeLog 8435
+MD5 90c06150068d30bac2c7f7eb43215bc4 grsec-sources-2.4.28.2.0.2-r2.ebuild 1281
+MD5 a14125aea9814c68efe8c1053f1e7469 ChangeLog 8697
 MD5 0b2ea9b53b5d526e39afbdc5040ff07a metadata.xml 487
 MD5 3dac23b6e285462a7cda41505cc698e1 files/2.4.26-CAN-2004-0394.patch 319
-MD5 f0aff4d717032ce77283fe63d6df94ec files/digest-grsec-sources-2.4.27.2.0.1-r4 462
 MD5 b293289df61d6f42ff54e4e0ceae53cf files/2.4.24-x86.config 2397
-MD5 c829ff92477a5a9e4fcbc370303217f8 files/digest-grsec-sources-2.4.28.2.0.2 144
 MD5 4a0215139f9aebfe2cc2747743763f08 files/2.4.28-binfmt_a.out.patch 1887
 MD5 c829ff92477a5a9e4fcbc370303217f8 files/digest-grsec-sources-2.4.28.2.0.2-r1 144
+MD5 c829ff92477a5a9e4fcbc370303217f8 files/digest-grsec-sources-2.4.28.2.0.2-r2 144
+MD5 6aa8f7a7c2d55734389b53d3bcf78570 files/CAN-2004-1016.patch 2835
 MD5 d1ccc2047be533c992f67270a150a210 files/2.4.27-cmdline-race.patch 388
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.4 (GNU/Linux)
 
-iQCVAwUBQb3S454WFLgrx1GWAQKGdQP/SgFTIMWcUJbFzOIwxhwg0J7iom4l5U3g
-0Yw2VusoMebFa3+fWn4pnXAhFfMdeQ+YVSMBzpOBNJHNNHzJfxAJyxAeA9m0Hu2X
-uJY24HWzT5X7FxneIBuvS0ccOirpNyT7z5aIB1r7DDapyqxgFES3gJ+BY0ImxUZm
-NMTPCI03vlE=
-=bDQL
+iQCVAwUBQb/gt54WFLgrx1GWAQK9DAP9FFdjyk3JVh3bODTbw9U7TD/ti7Qvhxe4
+QplUkSIjTemJIxxjwab3cR1KfSng/cxjzOaZIuvDfiR+iMnT0JdR+6RVoPWWUQ38
+OHTvjJqtHa8LlFFEx094tW8Ly3k8gZ+/kow2Y5WIxlCRnX9QkB+cN30CnWaYewpi
+B7kMGXKXpa4=
+=IkEh
 -----END PGP SIGNATURE-----
diff --git a/sys-kernel/grsec-sources/files/CAN-2004-1016.patch b/sys-kernel/grsec-sources/files/CAN-2004-1016.patch
new file mode 100644 (file)
index 0000000..aa25ac9
--- /dev/null
@@ -0,0 +1,75 @@
+===== include/linux/socket.h 1.12 vs edited =====
+--- 1.12/include/linux/socket.h        2004-09-09 06:40:01 +10:00
++++ edited/include/linux/socket.h      2004-11-27 11:53:40 +11:00
+@@ -90,6 +90,10 @@
+                                 (struct cmsghdr *)(ctl) : \
+                                 (struct cmsghdr *)NULL)
+ #define CMSG_FIRSTHDR(msg)    __CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
++#define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && \
++                           (cmsg)->cmsg_len <= (unsigned long) \
++                           ((mhdr)->msg_controllen - \
++                            ((char *)(cmsg) - (char *)(mhdr)->msg_control)))
+ 
+ /*
+  *    This mess will go away with glibc
+===== net/core/scm.c 1.10 vs edited =====
+--- 1.10/net/core/scm.c        2004-05-31 05:08:14 +10:00
++++ edited/net/core/scm.c      2004-11-27 11:48:55 +11:00
+@@ -127,9 +127,7 @@
+                  for too short ancillary data object at all! Oops.
+                  OK, let's add it...
+                */
+-              if (cmsg->cmsg_len < sizeof(struct cmsghdr) ||
+-                  (unsigned long)(((char*)cmsg - (char*)msg->msg_control)
+-                                  + cmsg->cmsg_len) > msg->msg_controllen)
++              if (!CMSG_OK(msg, cmsg))
+                       goto error;
+ 
+               if (cmsg->cmsg_level != SOL_SOCKET)
+===== net/ipv4/ip_sockglue.c 1.26 vs edited =====
+--- 1.26/net/ipv4/ip_sockglue.c        2004-07-01 06:10:53 +10:00
++++ edited/net/ipv4/ip_sockglue.c      2004-11-27 11:49:45 +11:00
+@@ -146,11 +146,8 @@
+       struct cmsghdr *cmsg;
+ 
+       for (cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) {
+-              if (cmsg->cmsg_len < sizeof(struct cmsghdr) ||
+-                  (unsigned long)(((char*)cmsg - (char*)msg->msg_control)
+-                                  + cmsg->cmsg_len) > msg->msg_controllen) {
++              if (!CMSG_OK(msg, cmsg))
+                       return -EINVAL;
+-              }
+               if (cmsg->cmsg_level != SOL_IP)
+                       continue;
+               switch (cmsg->cmsg_type) {
+===== net/ipv6/datagram.c 1.20 vs edited =====
+--- 1.20/net/ipv6/datagram.c   2004-11-10 17:57:03 +11:00
++++ edited/net/ipv6/datagram.c 2004-11-27 11:51:15 +11:00
+@@ -427,9 +427,7 @@
+               int addr_type;
+               struct net_device *dev = NULL;
+ 
+-              if (cmsg->cmsg_len < sizeof(struct cmsghdr) ||
+-                  (unsigned long)(((char*)cmsg - (char*)msg->msg_control)
+-                                  + cmsg->cmsg_len) > msg->msg_controllen) {
++              if (!CMSG_OK(msg, cmsg)) {
+                       err = -EINVAL;
+                       goto exit_f;
+               }
+===== net/sctp/socket.c 1.129 vs edited =====
+--- 1.129/net/sctp/socket.c    2004-11-19 08:43:18 +11:00
++++ edited/net/sctp/socket.c   2004-11-27 11:52:11 +11:00
+@@ -4098,12 +4098,8 @@
+       for (cmsg = CMSG_FIRSTHDR(msg);
+            cmsg != NULL;
+            cmsg = CMSG_NXTHDR((struct msghdr*)msg, cmsg)) {
+-              /* Check for minimum length.  The SCM code has this check.  */
+-              if (cmsg->cmsg_len < sizeof(struct cmsghdr) ||
+-                  (unsigned long)(((char*)cmsg - (char*)msg->msg_control)
+-                                  + cmsg->cmsg_len) > msg->msg_controllen) {
++              if (!CMSG_OK(msg, cmsg))
+                       return -EINVAL;
+-              }
+ 
+               /* Should we parse this header or ignore?  */
+               if (cmsg->cmsg_level != IPPROTO_SCTP)
diff --git a/sys-kernel/grsec-sources/files/digest-grsec-sources-2.4.27.2.0.1-r4 b/sys-kernel/grsec-sources/files/digest-grsec-sources-2.4.27.2.0.1-r4
deleted file mode 100644 (file)
index 353977b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-MD5 3431156a47f26a1306f69de009941c63 grsecurity-2.0.1-2.4.27.patch 638046
-MD5 59a2e6fde1d110e2ffa20351ac8b4d9e linux-2.4.27.tar.bz2 30898453
-MD5 5bbbb2201b338ebb74f0bf650b639475 linux-2.4.27-nfs3-xdr.patch.bz2 746
-MD5 22860b67a043f4f2d601eab21fb3cfaf grsec-sources-2.4.27-CAN-2004-0814.patch.bz2 18441
-MD5 279f3ba328612167cc8ceb732f1358b1 grsec-sources-2.4.27-binfmt_elf.patch.bz2 1094
-MD5 db88c7886aa8870f20c3498df013ee2b linux-2.4.27-binfmt_aout.patch.bz2 903
diff --git a/sys-kernel/grsec-sources/grsec-sources-2.4.27.2.0.1-r4.ebuild b/sys-kernel/grsec-sources/grsec-sources-2.4.27.2.0.1-r4.ebuild
deleted file mode 100644 (file)
index 56c3f1d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/grsec-sources/grsec-sources-2.4.27.2.0.1-r4.ebuild,v 1.2 2004/11/26 17:10:45 dsd Exp $
-
-ETYPE="sources"
-UNIPATCH_STRICTORDER="yes"
-inherit kernel-2
-detect_version
-
-OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH/.*/}"
-PATCH_BASE="${PV/${OKV}./}"
-PATCH_BASE="${PATCH_BASE/_/-}"
-EXTRAVERSION="-grsec-${PATCH_BASE}"
-KV_FULL="${OKV}${EXTRAVERSION}"
-
-PATCH_SRC_BASE="grsecurity-${PATCH_BASE}-${OKV}.patch"
-DESCRIPTION="Vanilla sources of the linux kernel with the grsecurity ${PATCH_BASE} patch"
-CAN_PATCHES=" \
-       mirror://gentoo/linux-2.4.27-nfs3-xdr.patch.bz2 \
-       mirror://gentoo/grsec-sources-2.4.27-CAN-2004-0814.patch.bz2 \
-       mirror://gentoo/grsec-sources-2.4.27-binfmt_elf.patch.bz2
-       mirror://gentoo/linux-2.4.27-binfmt_aout.patch.bz2"
-SRC_URI="http://grsecurity.net/grsecurity-${PATCH_BASE}-${OKV}.patch \
-       http://www.kernel.org/pub/linux/kernel/v2.4/linux-${OKV}.tar.bz2 ${CAN_PATCHES}"
-
-HOMEPAGE="http://www.kernel.org/ http://www.grsecurity.net"
-KEYWORDS="x86 sparc ppc alpha amd64 -hppa"
-RESTRICT="buildpkg"
-IUSE=""
-
-UNIPATCH_LIST="${DISTDIR}/${PATCH_SRC_BASE}
-       ${FILESDIR}/2.4.26-CAN-2004-0394.patch
-       ${FILESDIR}/2.4.27-cmdline-race.patch
-       ${DISTDIR}/linux-2.4.27-nfs3-xdr.patch.bz2
-       ${DISTDIR}/grsec-sources-2.4.27-CAN-2004-0814.patch.bz2
-       ${DISTDIR}/grsec-sources-2.4.27-binfmt_elf.patch.bz2
-       ${DISTDIR}/linux-2.4.27-binfmt_aout.patch.bz2"
-
-src_unpack() {
-       kernel-2_src_unpack
-
-       # users are often confused by what settings should be set.
-       # so we provide an  example of what a P4 desktop would look like.
-       cp ${FILESDIR}/2.4.24-x86.config gentoo-grsec-custom-example-2.4.2x-x86.config
-}
similarity index 85%
rename from sys-kernel/grsec-sources/grsec-sources-2.4.28.2.0.2.ebuild
rename to sys-kernel/grsec-sources/grsec-sources-2.4.28.2.0.2-r2.ebuild
index ce38a212758048b7a204d6b45dbbc8971bdaf0a1..6ff9b2e06ac06552f99c2f9bee448c8a11a94e90 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/grsec-sources/grsec-sources-2.4.28.2.0.2.ebuild,v 1.3 2004/11/26 17:14:49 dsd Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/grsec-sources/grsec-sources-2.4.28.2.0.2-r2.ebuild,v 1.1 2004/12/15 06:59:46 solar Exp $
 
 ETYPE="sources"
 UNIPATCH_STRICTORDER="yes"
@@ -23,7 +23,9 @@ KEYWORDS="x86 sparc ppc alpha amd64 -hppa"
 RESTRICT="buildpkg"
 IUSE=""
 
-UNIPATCH_LIST="${DISTDIR}/${PATCH_SRC_BASE}"
+UNIPATCH_LIST="${DISTDIR}/${PATCH_SRC_BASE} \
+       ${FILESDIR}/2.4.28-binfmt_a.out.patch
+       ${FILESDIR}/CAN-2004-1016.patch"
 
 src_unpack() {
        kernel-2_src_unpack