Author: simon
Date: Thu Nov 22 22:52:15 2012
New Revision: 243417
URL: http://svnweb.freebsd.org/changeset/base/243417

Log:
  Fix multiple Denial of Service vulnerabilities with named(8).
  
  Fix insufficient message length validation for EAP-TLS messages.
  
  Fix Linux compatibility layer input validation error.
  
  Security:     FreeBSD-SA-12:06.bind
  Security:     FreeBSD-SA-12:07.hostapd
  Security:     FreeBSD-SA-12:08.linux
  Security:     CVE-2012-4244, CVE-2012-5166, CVE-2012-4445, CVE-2012-4576
  Approved by:  re
  Approved by:  security-officer

Modified:
  stable/8/contrib/wpa/src/eap_server/eap_tls_common.c
  stable/8/sys/compat/linux/linux_ioctl.c

Changes in other areas also in this revision:
Modified:
  releng/7.4/UPDATING
  releng/7.4/contrib/bind9/bin/named/query.c
  releng/7.4/contrib/bind9/lib/dns/include/dns/rdata.h
  releng/7.4/contrib/bind9/lib/dns/master.c
  releng/7.4/contrib/bind9/lib/dns/rdata.c
  releng/7.4/sys/compat/linux/linux_ioctl.c
  releng/7.4/sys/conf/newvers.sh
  releng/8.3/UPDATING
  releng/8.3/contrib/bind9/bin/named/query.c
  releng/8.3/contrib/bind9/lib/dns/include/dns/rdata.h
  releng/8.3/contrib/bind9/lib/dns/master.c
  releng/8.3/contrib/bind9/lib/dns/rdata.c
  releng/8.3/contrib/wpa/src/eap_server/eap_tls_common.c
  releng/8.3/sys/compat/linux/linux_ioctl.c
  releng/8.3/sys/conf/newvers.sh
  releng/9.0/UPDATING
  releng/9.0/contrib/bind9/bin/named/query.c
  releng/9.0/contrib/bind9/lib/dns/include/dns/rdata.h
  releng/9.0/contrib/bind9/lib/dns/master.c
  releng/9.0/contrib/bind9/lib/dns/rdata.c
  releng/9.0/contrib/wpa/src/eap_server/eap_server_tls_common.c
  releng/9.0/sys/compat/linux/linux_ioctl.c
  releng/9.0/sys/conf/newvers.sh
  releng/9.1/contrib/wpa/src/eap_server/eap_server_tls_common.c
  releng/9.1/sys/compat/linux/linux_ioctl.c
  stable/9/contrib/wpa/src/eap_server/eap_server_tls_common.c
  stable/9/sys/compat/linux/linux_ioctl.c

Modified: stable/8/contrib/wpa/src/eap_server/eap_tls_common.c
==============================================================================
--- stable/8/contrib/wpa/src/eap_server/eap_tls_common.c        Thu Nov 22 
22:10:10 2012        (r243416)
+++ stable/8/contrib/wpa/src/eap_server/eap_tls_common.c        Thu Nov 22 
22:52:15 2012        (r243417)
@@ -220,6 +220,13 @@ static int eap_server_tls_process_fragme
                                   " over 64 kB)");
                        return -1;
                }
+               if (len > message_length) {
+                       wpa_printf(MSG_INFO, "SSL: Too much data (%d bytes) in "
+                                  "first fragment of frame (TLS Message "
+                                  "Length %d bytes)",
+                                  (int) len, (int) message_length);
+                       return -1;
+               }
 
                data->in_buf = wpabuf_alloc(message_length);
                if (data->in_buf == NULL) {

Modified: stable/8/sys/compat/linux/linux_ioctl.c
==============================================================================
--- stable/8/sys/compat/linux/linux_ioctl.c     Thu Nov 22 22:10:10 2012        
(r243416)
+++ stable/8/sys/compat/linux/linux_ioctl.c     Thu Nov 22 22:52:15 2012        
(r243417)
@@ -2253,8 +2253,9 @@ again:
 
        ifc.ifc_len = valid_len; 
        sbuf_finish(sb);
-       memcpy(PTRIN(ifc.ifc_buf), sbuf_data(sb), ifc.ifc_len);
-       error = copyout(&ifc, uifc, sizeof(ifc));
+       error = copyout(sbuf_data(sb), PTRIN(ifc.ifc_buf), ifc.ifc_len);
+       if (error == 0)
+               error = copyout(&ifc, uifc, sizeof(ifc));
        sbuf_delete(sb);
        CURVNET_RESTORE();
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to