Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934360AbcJTIpa (ORCPT ); Thu, 20 Oct 2016 04:45:30 -0400 Received: from mx2.suse.de ([195.135.220.15]:46461 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934234AbcJTIpY (ORCPT ); Thu, 20 Oct 2016 04:45:24 -0400 X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" From: Jiri Slaby To: stable@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Arend Van Spriel , Kalle Valo , Jiri Slaby Subject: [PATCH 3.12 3/5] brcmfmac: avoid potential stack overflow in brcmf_cfg80211_start_ap() Date: Thu, 20 Oct 2016 10:45:18 +0200 Message-Id: <09f6ac4aeff76acb7bb82892b90e3f54d1dfb07c.1476953088.git.jslaby@suse.cz> X-Mailer: git-send-email 2.10.1 In-Reply-To: <8e335ed458e79a74833fb846a5607c814c762bf8.1476953088.git.jslaby@suse.cz> References: <8e335ed458e79a74833fb846a5607c814c762bf8.1476953088.git.jslaby@suse.cz> In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1710 Lines: 41 From: Arend Van Spriel 3.12-stable review patch. If anyone has any objections, please let me know. =============== commit ded89912156b1a47d940a0c954c43afbabd0c42c upstream. User-space can choose to omit NL80211_ATTR_SSID and only provide raw IE TLV data. When doing so it can provide SSID IE with length exceeding the allowed size. The driver further processes this IE copying it into a local variable without checking the length. Hence stack can be corrupted and used as exploit. Reported-by: Daxing Guo Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Franky Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo Acked-by: Benjamin Poirier Signed-off-by: Jiri Slaby --- drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c index 571f013cebbb..f2e245bc4520 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c @@ -3731,7 +3731,7 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev, (u8 *)&settings->beacon.head[ie_offset], settings->beacon.head_len - ie_offset, WLAN_EID_SSID); - if (!ssid_ie) + if (!ssid_ie || ssid_ie->len > IEEE80211_MAX_SSID_LEN) return -EINVAL; memcpy(ssid_le.SSID, ssid_ie->data, ssid_ie->len); -- 2.10.1