From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f169.google.com (mail-dy1-f169.google.com [74.125.82.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5AD72E11D2 for ; Tue, 12 May 2026 01:45:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778550307; cv=none; b=tb2OoPI81UNzCa0RzHBF4G94yP+hjf837a0UVbV3lQSC9eXQbqaTIlNkM7vjfYjiOESQEJ9ThZlVOjSkgJ+FGpi0ZRtdjPbl0SdAwM53TDksgnJI7gym6FXKrmF9Xq5b8dFYznKUmcfbEGDPxcrbNIKacFlkdj5NlbNRr6gDoB0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778550307; c=relaxed/simple; bh=KqTQRneBMfvDtD0NGh/qnie7L+jkNNCpExxYKyw+jhE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P8/MWtggBONt/h5wrkECwYGFJBbzbpwbxXVtBkquu+BzmEFtTqXV9al9F6d65sEuu9y/Q537NVCC2Tmkurz8DfvkNgtnSp3Vf1Sn0qWWhM/BG7EATHA4WPkA9WME/b8LIqdf7vNZTZ2A3XzqoKdQI0X83lKHFfZPPiZqoiKQTqk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BRMaQD+5; arc=none smtp.client-ip=74.125.82.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BRMaQD+5" Received: by mail-dy1-f169.google.com with SMTP id 5a478bee46e88-2f0ad52830cso7289699eec.1 for ; Mon, 11 May 2026 18:45:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778550303; x=1779155103; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Yt10RUM2UXri9I9UIGCyRKsgv2xs4QwM0yEoyhATCiU=; b=BRMaQD+5wwXguex3EVGHXCScmPyYE/dProi+e8W9e4PQY6XHxEvBRQMSfusNSAO/G+ /msatXHKYPXaz3QvF8PgQxmjhuRo+FYgENGX87yydUCT3n2B2jTUVXHMpLEbbsJBKYHm qoDwi0L1j+u+nJN0hlYixzwqsw6NFM0ndpFhBZpNGWFwoZXcTSDsx63S4HY5UxSywxTL IFKRczMPZjGv908KDpuWU+uT+afmggQ8jXyYjkn4z+fxz/+PdYjcEiXl1g4Zk5aqpOq7 l1UHha39f97sGP5M/anaZ9L/W/LXmfAQLCFCanGxYBaLWgJ7jm4WnJMvzW2oQIdA+uoA sfVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778550303; x=1779155103; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Yt10RUM2UXri9I9UIGCyRKsgv2xs4QwM0yEoyhATCiU=; b=KuPOTIUo4dUF0A9HTMPnQV9Lf5uJDdeTrm71uJXqU200CUpIz+LZsrBeMxkftAHKV9 aWmPMZf2nzvDAWCDM3KQDgRkRKvA38DW+ftK7pceulCJPFbsHzkCnNX56e4xfxO5pnYK x/815pkH2SktTSIAKIlcw6Yr5CXbPlXWH6HvuolAn06fmcvGalJFdIntfHDuNKa+dMWo BEsJNi6ZcmhG2nKOAYsG4ccO7bMsO+5Wlf/jdLPB4EwBNWnSH81znjFgKSlIwJGty48c TqMpkYSTGPJEcQQy5Qb8I603gP1+MxgPQiUuBQFpXnUq24pXl8UWK2jTKapFEi2yGqhE 9/1w== X-Forwarded-Encrypted: i=1; AFNElJ9vnslO4kwdrMS7CdT+IHufKRXv4Q4dkSsLs7lkvxpnQxw69ismmyCAqfUWffZL+xRA7lGNQdD+c4ELZyY=@vger.kernel.org X-Gm-Message-State: AOJu0Yzm1SkGu4RttJDGpoJcvI9N84IMtskNTWMfQxzLCBO6V6JLu7RT uvaLKcl1b6X59zjdjzQ9Ic6j3dPm0pgDsmd2Nr/wF8wKYekL8mMHh4ry X-Gm-Gg: Acq92OHGyBRsSKo6GiWvYufn8CbQFOQ2eMXlG1ZEtVSb1n9ajWhw2D7jrcueWqIIk5G CriM2XkYq/B9JiVZ+3WjN+F/vRaSspU6q0hH1Ck2aaLKJP16Kcm8HbLq4G6ZF3l79AX9i3wFyNy r0sMXJnnMbFHlcyeBzxrYYSj/4UKEmRY997mIOTvhIukuEiperqTIPUrkNRt/hqHU9bI283D2WZ 9i9fqSUkHJb19SMuO3dsnJiTq85Uw5SKZrBbjJf3Z0WTv19XBPHgIk0XuoUc3sjuvLjGec2sf1R zo7/JPHuekaZUQkD5EEPNopYu7niLvptAdDew/zfOHFwH0Gs2/Mg8ueqKTH92fkht924Mn82AF7 VFPmM50N08t9SKtCRy0K7jmCMadMFRd2qIOWERiBK02CEPQQZG+AlE1SGVGEmeA4JGQR/13rxUE 09LN0RQMo1vQtwBcpEGseVEcsk/uB3Z1Fm6njdsbNu4vFgIbGvIAYYvaNK0Ap913oXhlaii02UW fS5N8c= X-Received: by 2002:a05:7301:1f18:b0:2d2:c60d:4fe5 with SMTP id 5a478bee46e88-2fb4b92173amr5138362eec.6.1778550303413; Mon, 11 May 2026 18:45:03 -0700 (PDT) Received: from localhost.localdomain ([50.231.3.67]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2f888e4016asm15816499eec.28.2026.05.11.18.45.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 18:45:02 -0700 (PDT) From: Shayaun Nejad To: Greg Kroah-Hartman Cc: linux-staging@lists.linux.dev, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Shayaun Nejad Subject: [PATCH 2/2] staging: rtl8723bs: bound SUPP_RATES IE length in rtw_check_beacon_data Date: Mon, 11 May 2026 18:44:56 -0700 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit rtw_check_beacon_data() copies SUPP_RATES and EXT_SUPP_RATES IE payloads into a 16-byte support_rate[] buffer. The IE lengths are used directly, so oversized rate IEs can overflow the stack buffer. Clamp the supported rates copy and the combined extended supported rates copy to NDIS_802_11_LENGTH_RATES_EX. Fixes: 554c0a3abf21 ("staging: Add rtl8723bs sdio wifi driver") Cc: stable@vger.kernel.org Signed-off-by: Shayaun Nejad --- drivers/staging/rtl8723bs/core/rtw_ap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_ap.c b/drivers/staging/rtl8723bs/core/rtw_ap.c index 4b40124110..363ecb02b5 100644 --- a/drivers/staging/rtl8723bs/core/rtw_ap.c +++ b/drivers/staging/rtl8723bs/core/rtw_ap.c @@ -873,6 +873,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) &ie_len, (pbss_network->ie_length - _BEACON_IE_OFFSET_)); if (p) { + ie_len = min_t(uint, ie_len, NDIS_802_11_LENGTH_RATES_EX); memcpy(support_rate, p + 2, ie_len); support_rate_num = ie_len; } @@ -882,8 +883,11 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) WLAN_EID_EXT_SUPP_RATES, &ie_len, pbss_network->ie_length - _BEACON_IE_OFFSET_); - if (p) + if (p && support_rate_num < NDIS_802_11_LENGTH_RATES_EX) { + ie_len = min_t(uint, ie_len, + NDIS_802_11_LENGTH_RATES_EX - support_rate_num); memcpy(support_rate + support_rate_num, p + 2, ie_len); + } network_type = rtw_check_network_type(support_rate, channel); -- 2.43.0