Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Nov 2012 22:52:15 +0000 (UTC)
From:      "Simon L. Nielsen" <simon@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r243417 - releng/7.4 releng/7.4/contrib/bind9/bin/named releng/7.4/contrib/bind9/lib/dns releng/7.4/contrib/bind9/lib/dns/include/dns releng/7.4/sys/compat/linux releng/7.4/sys/conf rel...
Message-ID:  <201211222252.qAMMqFu9080179@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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();
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211222252.qAMMqFu9080179>