From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (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 23F0C3D8134 for ; Tue, 21 Apr 2026 13:49:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776779385; cv=none; b=gt8YfzDYUb/SvqOxNxtCYGWKf1CRE0+9iaFrGdPZXLSA5OkAoRUNMs0l4ZZoUkH13GzupUx7GcqFrcOyhVbu8oC9rGjuR+LppBphsG30eqfNT5kg40UpOb4TOoCObaOhryTL8v2nazesKS3P4s4o91EpDgW7ssnmt44jcHDLNAI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776779385; c=relaxed/simple; bh=ChiiXRmm3F/dqlY3nOdKNxEUwQSRYRdBuTJ8k4ZPxlk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RU/4yd7wz6BoV32AXfP6PDUDIY93zmTgXIZxoGu4nWGCeOHAgGs/tTSr5mnhx6yE7B4Jd1dtTWKQuOsyGZvT76iZaVAnJBy+juWS2rOr9h8IkThR1DRWhPYMnezkYWkXJZYzhUlWVTc84ehtAdJhjvtk/MrWEyXYe2DxOr06em8= 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=he8gNFv2; arc=none smtp.client-ip=209.85.128.48 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="he8gNFv2" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-48896199cbaso44026595e9.1 for ; Tue, 21 Apr 2026 06:49:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776779382; x=1777384182; 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=m8oE+GpxOD5g4BmvE4XtuDmhQWyIt8yiyOWaNPkQBJo=; b=he8gNFv2Vv+pmtifRFPue3hlqcY9HV3qjdZmwJbuiyUCm1Bn85Ns6jU+Ra2Ta1qTBT mx8RyX/BwnVXtm7BmBjKcohGmVf8cp8hFz+fWWQri3g/yRLfWD2noaI+gtniqxtSRB4M eXoD1XZQjkK3hO1T51+cMqxqPcXkTohJNFhhxCvkTJKCticV0w25H/I2Dw3wof8tZwLi s5tl3KFFV33rMpJbE6OlCN8D+0g9OYX0OM3xvB2uemmXBJfzXAbnmQZJsNzB1B1lsRxJ 3Q19oLcBtm8ISExHGcoLyeLWd1bdg9mrA+4D1wedf3D7DNAc7l2V2k1RN1Lr6eZp6oAk axVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776779382; x=1777384182; 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=m8oE+GpxOD5g4BmvE4XtuDmhQWyIt8yiyOWaNPkQBJo=; b=RfMXll6iudBLQ+FpUr8ZfBNzHYtdw5pi8xviVYXRZjLr5+qAdR7ZMoNOa3EypvbgLU 5mWMeoteRb2cZAgtPOgxnrMsRMcGF3i2blTuKxvDOWtXTjsP9Ug1/L4w8nKUAIoco7r+ os9YCISJVRpBUMVzWc3wB4kZ8mzLv/DF5ULAznFvHbqomsEFAIQlOXMsYqgtM0iOfDU0 ebZ82BcY8rhP827gkqNLJX3QDhgwgBP/GekraQaXwKOYhcxcjFzI1xOxaNlGuZt1SPXg PicYznzUvoPjmw2xnAsRmHRsMe+lJtPMIZtWnMpTOXqaNGcJxZH75heidspbn4sIlkZh GLtA== X-Forwarded-Encrypted: i=1; AFNElJ+LsmFyZVBybmhiJGcPGy6ybuDr4mbn6DSJZgy4C3nNcJkXN2x4PtKNiTbJgQikqNkkrANFvmiLgLYgXA4=@vger.kernel.org X-Gm-Message-State: AOJu0YwGSirp571WbP5xmY2UKlPc4lA34NTQgRp4ZBR5IlVKjw3nv8yu 9wKShJ+d/cmZXlU8upjhRAi9/NmBTUsQPwFvEER/q6zdfY/Y7bjMzgt98ym4 X-Gm-Gg: AeBDieukYWi9n0xzQlzB+mIPUMbdz7lcQLJXNuuySHbZiA6ru4mDKN+2s0/hQtxBnTS wQV7K1isqg2efj1hz/zoyoo8gIXl/3UKHPy6hOdmnR7uIC3RZHVaGPf6ik+DkWh9Yw1W1Z9hn7+ hKlLmE2+OsIbOnpjgv2OfFzkv9QWoDsRMQtzDhTcPKz4MOogBBzkO/+yRpNa0zgbfdN82Y1N5C9 4q8ikU4Byp6Twt1eDFugaY3LTxVDNhVTHlbkMsLK9b5EukMreYqcCxThJNMN+yFxyKUf0Jjrx95 UqB0mrlMMNYLvEeWZ2ZPJOWitTU+4a5v+5YCoTYVsu6prERZq6577z/FhJgzo47A2ltH42mUayV o8u+HGojTqQ1g+VAi9nc3WxPx9a3n45gGHMDdK2+NwKXc8BGREB6I8+koN/b7cwDWfpl5it5Y8O jJTdQ= X-Received: by 2002:a05:600c:c090:b0:488:9e54:94c0 with SMTP id 5b1f17b1804b1-488fb74e130mr187796305e9.8.1776779382390; Tue, 21 Apr 2026 06:49:42 -0700 (PDT) Received: from debian.. ([2001:41d0:303:db6b::]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fb78becdsm176331185e9.5.2026.04.21.06.49.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2026 06:49:41 -0700 (PDT) From: Tristan Madani To: Brian Norris Cc: Johannes Berg , linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Tristan Madani Subject: [PATCH v3 2/6] wifi: mwifiex: fix OOB write from firmware TID in ADDBA response handler Date: Tue, 21 Apr 2026 13:49:34 +0000 Message-ID: <20260421134938.331334-3-tristmd@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260421134938.331334-1-tristmd@gmail.com> References: <20260421134938.331334-1-tristmd@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Tristan Madani The TID value extracted from the Block Ack parameter set is a 4-bit field (0-15), but aggr_prio_tbl[] has only 8 entries. A TID >= 8 causes an out-of-bounds write to adjacent struct mwifiex_private fields. Add a bounds check after extracting the TID. Fixes: 5e6e3a92b9a4 ("wireless: mwifiex: initial commit for Marvell mwifiex driver") Signed-off-by: Tristan Madani --- Changes in v3: - Regenerated from wireless-next with proper git format-patch to produce valid index hashes (v2 had post-processed index lines). Changes in v2: - No code changes from v1. drivers/net/wireless/marvell/mwifiex/11n.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/wireless/marvell/mwifiex/11n.c b/drivers/net/wireless/marvell/mwifiex/11n.c index cef8a55427dd0..5d97bddc71381 100644 --- a/drivers/net/wireless/marvell/mwifiex/11n.c +++ b/drivers/net/wireless/marvell/mwifiex/11n.c @@ -154,6 +154,11 @@ int mwifiex_ret_11n_addba_req(struct mwifiex_private *priv, tid = (block_ack_param_set & IEEE80211_ADDBA_PARAM_TID_MASK) >> BLOCKACKPARAM_TID_POS; + if (tid >= MAX_NUM_TID) { + mwifiex_dbg(priv->adapter, ERROR, + "ADDBA RSP: invalid tid %d\n", tid); + return -EINVAL; + } tid_down = mwifiex_wmm_downgrade_tid(priv, tid); ra_list = mwifiex_wmm_get_ralist_node(priv, tid_down, add_ba_rsp-> peer_mac_addr); -- 2.47.3