public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in net-wireless/wpa_supplicant/files/2015-2: 0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch
@ 2015-05-11 14:53 Bjarke Istrup Pedersen (gurligebis)
  0 siblings, 0 replies; only message in thread
From: Bjarke Istrup Pedersen (gurligebis) @ 2015-05-11 14:53 UTC (permalink / raw
  To: gentoo-commits

gurligebis    15/05/11 14:53:41

  Added:               
                        0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch
  Log:
  Adding more security patches from bug #548742 and fixing patch from bug #544036
  
  (Portage version: 2.2.18/cvs/Linux x86_64, signed Manifest commit with key 15AE484C)

Revision  Changes    Path
1.1                  net-wireless/wpa_supplicant/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-wireless/wpa_supplicant/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-wireless/wpa_supplicant/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch?rev=1.1&content-type=text/plain

Index: 0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch
===================================================================
From 5acd23f4581da58683f3cf5e36cb71bbe4070bd7 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Tue, 28 Apr 2015 17:08:33 +0300
Subject: [PATCH] WPS: Fix HTTP chunked transfer encoding parser

strtoul() return value may end up overflowing the int h->chunk_size and
resulting in a negative value to be stored as the chunk_size. This could
result in the following memcpy operation using a very large length
argument which would result in a buffer overflow and segmentation fault.

This could have been used to cause a denial service by any device that
has been authorized for network access (either wireless or wired). This
would affect both the WPS UPnP functionality in a WPS AP (hostapd with
upnp_iface parameter set in the configuration) and WPS ER
(wpa_supplicant with WPS_ER_START control interface command used).

Validate the parsed chunk length value to avoid this. In addition to
rejecting negative values, we can also reject chunk size that would be
larger than the maximum configured body length.

Thanks to Kostya Kortchinsky of Google security team for discovering and
reporting this issue.

Signed-off-by: Jouni Malinen <j@w1.fi>
---
 src/wps/httpread.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/wps/httpread.c b/src/wps/httpread.c
index 2f08f37..d2855e3 100644
--- a/src/wps/httpread.c
+++ b/src/wps/httpread.c
@@ -533,6 +533,13 @@ static void httpread_read_handler(int sd, void *eloop_ctx, void *sock_ctx)
 					if (!isxdigit(*cbp))
 						goto bad;
 					h->chunk_size = strtoul(cbp, NULL, 16);
+					if (h->chunk_size < 0 ||
+					    h->chunk_size > h->max_bytes) {
+						wpa_printf(MSG_DEBUG,
+							   "httpread: Invalid chunk size %d",
+							   h->chunk_size);
+						goto bad;
+					}
 					/* throw away chunk header
 					 * so we have only real data
 					 */
-- 
1.9.1






^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-05-11 14:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-11 14:53 [gentoo-commits] gentoo-x86 commit in net-wireless/wpa_supplicant/files/2015-2: 0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch Bjarke Istrup Pedersen (gurligebis)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox