Package: release.debian.org
User: [email protected]
Usertags: pu
Tags: wheezy
X-Debbugs-Cc: [email protected]

Hi,

Please could we also update kfreebsd-8 in wheezy?  This has the same
backported patch to disable hardware RNGs, as well as a backlog of
security fixes, that are already applied to kfreebsd-9 in wheezy.

kfreebsd-8 is removed already from jessie/sid.  It was not the default
kernel for wheezy, so issues are handled at a lower priority, and the
security bugs are marked non-DSA.

The debdiff is attached.  Thanks!

> kfreebsd-8 (8.3-6+deb7u1) wheezy; urgency=medium
> 
>   [ Robert Millan ]
>   * Apply upstream SA-13_08.nfsserver patch (CVE-2013-4851).
>     (Closes: #717959)
> 
>   [ Steven Chamberlain ]
>   * Apply upstream SA-13_09.ip_multicast patch (CVE-2013-3077).
>     (Closes: #720470)
>   * Apply upstream SA-13_10.sctp patch (CVE-2013-5209).
>     (Closes: #720476)
>   * Apply upstream SA-13_12.ifioctl patch (CVE-2013-5691).
>     (Closes: #737181)
>   * Apply upstream SA-13_13.nullfs patch (CVE-2013-5710).
>     (Closes: #737182)
>   * Disable VIA hardware RNG by default. Use hw.nehemiah_rng_enable
>     sysctl to re-enable (but read about the security implications
>     first). (Closes: #735448)
> 
>  -- Steven Chamberlain <[email protected]>  Fri, 31 Jan 2014 02:58:14 +0000
diff -Nru kfreebsd-8-8.3/debian/changelog kfreebsd-8-8.3/debian/changelog
--- kfreebsd-8-8.3/debian/changelog     2012-11-23 22:13:01.000000000 +0000
+++ kfreebsd-8-8.3/debian/changelog     2014-01-31 03:35:00.000000000 +0000
@@ -1,3 +1,24 @@
+kfreebsd-8 (8.3-6+deb7u1) wheezy; urgency=medium
+
+  [ Robert Millan ]
+  * Apply upstream SA-13_08.nfsserver patch (CVE-2013-4851).
+    (Closes: #717959)
+
+  [ Steven Chamberlain ]
+  * Apply upstream SA-13_09.ip_multicast patch (CVE-2013-3077).
+    (Closes: #720470)
+  * Apply upstream SA-13_10.sctp patch (CVE-2013-5209).
+    (Closes: #720476)
+  * Apply upstream SA-13_12.ifioctl patch (CVE-2013-5691).
+    (Closes: #737181)
+  * Apply upstream SA-13_13.nullfs patch (CVE-2013-5710).
+    (Closes: #737182)
+  * Disable VIA hardware RNG by default. Use hw.nehemiah_rng_enable
+    sysctl to re-enable (but read about the security implications
+    first). (Closes: #735448)
+
+ -- Steven Chamberlain <[email protected]>  Fri, 31 Jan 2014 02:58:14 +0000
+
 kfreebsd-8 (8.3-6) unstable; urgency=medium
 
   * Apply patch for SA-12:08 / CVE-2012-4576:
diff -Nru kfreebsd-8-8.3/debian/patches/disable_via_rng.diff 
kfreebsd-8-8.3/debian/patches/disable_via_rng.diff
--- kfreebsd-8-8.3/debian/patches/disable_via_rng.diff  1970-01-01 
00:00:00.000000000 +0000
+++ kfreebsd-8-8.3/debian/patches/disable_via_rng.diff  2014-01-31 
03:15:37.000000000 +0000
@@ -0,0 +1,34 @@
+Description:
+ Disable VIA hardware RNG by default due to unsafe usage.  Implement a
+ loader tunable allowing to turn it back on.
+ .
+ Minimal patch based on upstream SVN r240950 and r260644
+Origin: backport, commit:240950, commit:260644
+Forwarded: not-needed
+Bug-Debian: http://bugs.debian.org/735448
+
+--- kfreebsd-8-8.3.orig/sys/dev/random/probe.c
++++ kfreebsd-8-8.3/sys/dev/random/probe.c
+@@ -30,6 +30,8 @@
+ 
+ #include <sys/types.h>
+ #include <sys/param.h>
++#include <sys/systm.h>
++#include <sys/kernel.h>
+ #include <sys/malloc.h>
+ #include <sys/random.h>
+ #include <sys/selinfo.h>
+@@ -57,7 +59,12 @@
+       /* Then go looking for hardware */
+ #if defined(__i386__) && !defined(PC98)
+       if (via_feature_rng & VIA_HAS_RNG) {
+-              *systat = random_nehemiah;
++              int enable;
++
++              enable = 0;
++              TUNABLE_INT_FETCH("hw.nehemiah_rng_enable", &enable);
++              if (enable)
++                      *systat = random_nehemiah;
+       }
+ #endif
+ }
diff -Nru kfreebsd-8-8.3/debian/patches/SA-13_08.nfsserver.diff 
kfreebsd-8-8.3/debian/patches/SA-13_08.nfsserver.diff
--- kfreebsd-8-8.3/debian/patches/SA-13_08.nfsserver.diff       1970-01-01 
00:00:00.000000000 +0000
+++ kfreebsd-8-8.3/debian/patches/SA-13_08.nfsserver.diff       2014-01-31 
02:26:03.000000000 +0000
@@ -0,0 +1,21 @@
+Description:
+ Fix a bug that allows remote client bypass the normal
+ access checks when when -network or -host restrictions
+ are used at the same time with -mapall. [13:08]
+ (CVE-2013-4851)
+Origin: vendor, http://security.FreeBSD.org/patches/SA-13:08/nfsserver.patch
+Bug: http://www.freebsd.org/security/advisories/FreeBSD-SA-13:08.nfsserver.asc
+Bug-Debian: http://bugs.debian.org/717959
+Applied-Upstream: http://svnweb.freebsd.org/base?view=revision&revision=253694
+
+--- a/sys/kern/vfs_export.c
++++ b/sys/kern/vfs_export.c
+@@ -208,7 +208,7 @@
+       np->netc_anon = crget();
+       np->netc_anon->cr_uid = argp->ex_anon.cr_uid;
+       crsetgroups(np->netc_anon, argp->ex_anon.cr_ngroups,
+-          np->netc_anon->cr_groups);
++          argp->ex_anon.cr_groups);
+       np->netc_anon->cr_prison = &prison0;
+       prison_hold(np->netc_anon->cr_prison);
+       np->netc_numsecflavors = argp->ex_numsecflavors;
diff -Nru kfreebsd-8-8.3/debian/patches/SA-13_09.ip_multicast.diff 
kfreebsd-8-8.3/debian/patches/SA-13_09.ip_multicast.diff
--- kfreebsd-8-8.3/debian/patches/SA-13_09.ip_multicast.diff    1970-01-01 
00:00:00.000000000 +0000
+++ kfreebsd-8-8.3/debian/patches/SA-13_09.ip_multicast.diff    2014-01-31 
03:34:13.000000000 +0000
@@ -0,0 +1,31 @@
+Description:
+ Fix an integer overflow in computing the size of a temporary buffer
+ can result in a buffer which is too small for the requested
+ operation. [13:09] (CVE-2013-3077)
+Origin: vendor, http://security.FreeBSD.org/patches/SA-13:09/ip_multicast.patch
+Bug: 
http://www.freebsd.org/security/advisories/FreeBSD-SA-13:09.ip_multicast.asc
+Bug-Debian: http://bugs.debian.org/720470
+Applied-Upstream: http://svnweb.freebsd.org/base?view=revision&revision=254629
+
+--- kfreebsd-8-8.3.orig/sys/netinet/in_mcast.c
++++ kfreebsd-8-8.3/sys/netinet/in_mcast.c
+@@ -1613,6 +1613,8 @@
+        * has asked for, but we always tell userland how big the
+        * buffer really needs to be.
+        */
++      if (msfr.msfr_nsrcs > in_mcast_maxsocksrc)
++              msfr.msfr_nsrcs = in_mcast_maxsocksrc;
+       tss = NULL;
+       if (msfr.msfr_srcs != NULL && msfr.msfr_nsrcs > 0) {
+               tss = malloc(sizeof(struct sockaddr_storage) * msfr.msfr_nsrcs,
+--- kfreebsd-8-8.3.orig/sys/netinet6/in6_mcast.c
++++ kfreebsd-8-8.3/sys/netinet6/in6_mcast.c
+@@ -1624,6 +1624,8 @@
+        * has asked for, but we always tell userland how big the
+        * buffer really needs to be.
+        */
++      if (msfr.msfr_nsrcs > in6_mcast_maxsocksrc)
++              msfr.msfr_nsrcs = in6_mcast_maxsocksrc;
+       tss = NULL;
+       if (msfr.msfr_srcs != NULL && msfr.msfr_nsrcs > 0) {
+               tss = malloc(sizeof(struct sockaddr_storage) * msfr.msfr_nsrcs,
diff -Nru kfreebsd-8-8.3/debian/patches/SA-13_10.sctp.diff 
kfreebsd-8-8.3/debian/patches/SA-13_10.sctp.diff
--- kfreebsd-8-8.3/debian/patches/SA-13_10.sctp.diff    1970-01-01 
00:00:00.000000000 +0000
+++ kfreebsd-8-8.3/debian/patches/SA-13_10.sctp.diff    2014-01-31 
03:35:14.000000000 +0000
@@ -0,0 +1,25 @@
+Description:
+ Fix a bug that could lead to kernel memory disclosure with
+ SCTP state cookie. [13:10] (CVE-2013-5209)
+Origin: vendor, http://security.FreeBSD.org/patches/SA-13:10/sctp.patch
+Bug: http://www.freebsd.org/security/advisories/FreeBSD-SA-13:10.sctp.asc
+Bug-Debian: http://bugs.debian.org/720476
+Applied-Upstream: http://svnweb.freebsd.org/base?view=revision&revision=254632
+
+--- kfreebsd-8-8.3.orig/sys/netinet/sctp_output.c
++++ kfreebsd-8-8.3/sys/netinet/sctp_output.c
+@@ -5456,6 +5456,14 @@
+       }
+       SCTP_BUF_LEN(m) = sizeof(struct sctp_init_chunk);
+ 
++      /*
++       * We might not overwrite the identification[] completely and on
++       * some platforms time_entered will contain some padding. Therefore
++       * zero out the cookie to avoid putting uninitialized memory on the
++       * wire.
++       */
++      memset(&stc, 0, sizeof(struct sctp_state_cookie));
++
+       /* the time I built cookie */
+       (void)SCTP_GETTIME_TIMEVAL(&stc.time_entered);
+ 
diff -Nru kfreebsd-8-8.3/debian/patches/SA-13_12.ifioctl.diff 
kfreebsd-8-8.3/debian/patches/SA-13_12.ifioctl.diff
--- kfreebsd-8-8.3/debian/patches/SA-13_12.ifioctl.diff 1970-01-01 
00:00:00.000000000 +0000
+++ kfreebsd-8-8.3/debian/patches/SA-13_12.ifioctl.diff 2014-01-31 
02:53:04.000000000 +0000
@@ -0,0 +1,93 @@
+Description:
+ In IPv6 and NetATM, stop SIOCSIFADDR, SIOCSIFBRDADDR, SIOCSIFDSTADDR
+ and SIOCSIFNETMASK at the socket layer rather than pass them on to the
+ link layer without validation or credential checks. [13:12]
+ (CVE-2013-5691)
+Origin: vendor, http://security.FreeBSD.org/patches/SA-13:12/ifioctl.patch
+Bug: http://www.freebsd.org/security/advisories/FreeBSD-SA-13:12.ifioctl.asc
+Bug-Debian: http://bugs.debian.org/737181
+Applied-Upstream: http://svnweb.freebsd.org/base?view=revision&revision=255445
+
+--- kfreebsd-8-8.3.orig/sys/net/if.c
++++ kfreebsd-8-8.3/sys/net/if.c
+@@ -2606,11 +2606,23 @@
+               CURVNET_RESTORE();
+               return (EOPNOTSUPP);
+       }
++
++      /*
++       * Pass the request on to the socket control method, and if the
++       * latter returns EOPNOTSUPP, directly to the interface.
++       *
++       * Make an exception for the legacy SIOCSIF* requests.  Drivers
++       * trust SIOCSIFADDR et al to come from an already privileged
++       * layer, and do not perform any credentials checks or input
++       * validation.
++       */
+ #ifndef COMPAT_43
+       error = ((*so->so_proto->pr_usrreqs->pru_control)(so, cmd,
+                                                                data,
+                                                                ifp, td));
+-      if (error == EOPNOTSUPP && ifp != NULL && ifp->if_ioctl != NULL)
++      if (error == EOPNOTSUPP && ifp != NULL && ifp->if_ioctl != NULL &&
++          cmd != SIOCSIFADDR && cmd != SIOCSIFBRDADDR &&
++          cmd != SIOCSIFDSTADDR && cmd != SIOCSIFNETMASK)
+               error = (*ifp->if_ioctl)(ifp, cmd, data);
+ #else
+       {
+@@ -2654,7 +2666,9 @@
+                                                                  data,
+                                                                  ifp, td));
+               if (error == EOPNOTSUPP && ifp != NULL &&
+-                  ifp->if_ioctl != NULL)
++                  ifp->if_ioctl != NULL &&
++                  cmd != SIOCSIFADDR && cmd != SIOCSIFBRDADDR &&
++                  cmd != SIOCSIFDSTADDR && cmd != SIOCSIFNETMASK)
+                       error = (*ifp->if_ioctl)(ifp, cmd, data);
+               switch (ocmd) {
+ 
+--- kfreebsd-8-8.3.orig/sys/netinet6/in6.c
++++ kfreebsd-8-8.3/sys/netinet6/in6.c
+@@ -339,6 +339,18 @@
+       case SIOCGIFSTAT_ICMP6:
+               sa6 = &ifr->ifr_addr;
+               break;
++      case SIOCSIFADDR:
++      case SIOCSIFBRDADDR:
++      case SIOCSIFDSTADDR:
++      case SIOCSIFNETMASK:
++              /*
++               * Although we should pass any non-INET6 ioctl requests
++               * down to driver, we filter some legacy INET requests.
++               * Drivers trust SIOCSIFADDR et al to come from an already
++               * privileged layer, and do not perform any credentials
++               * checks or input validation.
++               */
++              return (EINVAL);
+       default:
+               sa6 = NULL;
+               break;
+--- kfreebsd-8-8.3.orig/sys/netnatm/natm.c
++++ kfreebsd-8-8.3/sys/netnatm/natm.c
+@@ -339,6 +339,21 @@
+       npcb = (struct natmpcb *)so->so_pcb;
+       KASSERT(npcb != NULL, ("natm_usr_control: npcb == NULL"));
+ 
++      switch (cmd) {
++      case SIOCSIFADDR:
++      case SIOCSIFBRDADDR:
++      case SIOCSIFDSTADDR:
++      case SIOCSIFNETMASK:
++              /*
++               * Although we should pass any non-ATM ioctl requests
++               * down to driver, we filter some legacy INET requests.
++               * Drivers trust SIOCSIFADDR et al to come from an already
++               * privileged layer, and do not perform any credentials
++               * checks or input validation.
++               */
++              return (EINVAL);
++      }
++
+       if (ifp == NULL || ifp->if_ioctl == NULL)
+               return (EOPNOTSUPP);
+       return ((*ifp->if_ioctl)(ifp, cmd, arg));
diff -Nru kfreebsd-8-8.3/debian/patches/SA-13_13.nullfs.diff 
kfreebsd-8-8.3/debian/patches/SA-13_13.nullfs.diff
--- kfreebsd-8-8.3/debian/patches/SA-13_13.nullfs.diff  1970-01-01 
00:00:00.000000000 +0000
+++ kfreebsd-8-8.3/debian/patches/SA-13_13.nullfs.diff  2014-01-31 
02:55:22.000000000 +0000
@@ -0,0 +1,34 @@
+Description:
+ Prevent cross-mount hardlinks between different nullfs mounts of the
+ same underlying filesystem. [13:13] (CVE-2013-5710)
+Origin: vendor, http://security.FreeBSD.org/patches/SA-13:13/nullfs.patch
+Bug: http://www.freebsd.org/security/advisories/FreeBSD-SA-13:13.nullfs.asc
+Bug-Debian: http://bugs.debian.org/737182
+Applied-Upstream: http://svnweb.freebsd.org/base?view=revision&revision=255445
+
+--- kfreebsd-8-8.3.orig/sys/fs/nullfs/null_vnops.c
++++ kfreebsd-8-8.3/sys/fs/nullfs/null_vnops.c
+@@ -817,6 +817,15 @@
+       return (error);
+ }
+ 
++static int
++null_link(struct vop_link_args *ap)
++{
++
++      if (ap->a_tdvp->v_mount != ap->a_vp->v_mount)
++              return (EXDEV);
++      return (null_bypass((struct vop_generic_args *)ap));
++}
++
+ /*
+  * Global vfs data structures
+  */
+@@ -829,6 +838,7 @@
+       .vop_getwritemount =    null_getwritemount,
+       .vop_inactive =         null_inactive,
+       .vop_islocked =         vop_stdislocked,
++      .vop_link =             null_link,
+       .vop_lock1 =            null_lock,
+       .vop_lookup =           null_lookup,
+       .vop_open =             null_open,
diff -Nru kfreebsd-8-8.3/debian/patches/series 
kfreebsd-8-8.3/debian/patches/series
--- kfreebsd-8-8.3/debian/patches/series        2012-11-23 22:11:38.000000000 
+0000
+++ kfreebsd-8-8.3/debian/patches/series        2014-01-31 03:36:09.000000000 
+0000
@@ -13,6 +13,12 @@
 EN-12_02.ipv6refcount.patch
 SCTP_DOS_svn239447.diff
 SA-12_08.linux.patch
+SA-13_08.nfsserver.diff
+SA-13_09.ip_multicast.diff
+SA-13_10.sctp.diff
+SA-13_12.ifioctl.diff
+SA-13_13.nullfs.diff
+disable_via_rng.diff
 
 # Other patches that might or might not be mergeable
 001_misc.diff

Reply via email to