From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Johannes Berg <johannes.berg@intel.com>,
syzbot+8b512026a7ec10dcbdd9@syzkaller.appspotmail.com,
Sasha Levin <sashal@kernel.org>,
johannes@sipsolutions.net, linux-wireless@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 07/11] wifi: mac80211: drop invalid source address OCB frames
Date: Tue, 24 Jun 2025 00:12:55 -0400 [thread overview]
Message-ID: <20250624041259.84940-7-sashal@kernel.org> (raw)
In-Reply-To: <20250624041259.84940-1-sashal@kernel.org>
From: Johannes Berg <johannes.berg@intel.com>
[ Upstream commit d1b1a5eb27c4948e8811cf4dbb05aaf3eb10700c ]
In OCB, don't accept frames from invalid source addresses
(and in particular don't try to create stations for them),
drop the frames instead.
Reported-by: syzbot+8b512026a7ec10dcbdd9@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/r/6788d2d9.050a0220.20d369.0028.GAE@google.com/
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Tested-by: syzbot+8b512026a7ec10dcbdd9@syzkaller.appspotmail.com
Link: https://patch.msgid.link/20250616171838.7433379cab5d.I47444d63c72a0bd58d2e2b67bb99e1fea37eec6f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
**YES**
This commit should be backported to stable kernel trees. Here's my
extensive analysis:
## Security Vulnerability Fixed
The commit fixes a clear security vulnerability in OCB (Outside Context
of a BSS) mode where frames with invalid source addresses are accepted
and processed. Looking at the code change:
```c
+ /* reject invalid/our STA address */
+ if (!is_valid_ether_addr(hdr->addr2) ||
+ ether_addr_equal(sdata->dev->dev_addr, hdr->addr2))
+ return false;
```
This adds critical validation that was missing, preventing:
1. **Invalid MAC addresses** (all zeros, broadcast/multicast addresses)
from being accepted
2. **Self-spoofing attacks** where frames appear to come from the
device's own address
## Comparison with Similar Historical Fixes
This fix follows the exact pattern of Similar Commit #1 (Backport
Status: YES):
- That commit added `!is_valid_ether_addr(hdr->addr2)` check to ADHOC
mode
- It fixed WARN_ON spam in `sta_info_insert_check()`
- It was deemed suitable for stable backporting
The OCB fix addresses the same class of vulnerability in a different
interface mode.
## Impact Without the Fix
Without this validation, the `ieee80211_ocb_rx_no_sta()` function would:
1. Create station entries for invalid addresses
2. Potentially trigger WARN_ON messages causing log spam
3. Allow resource exhaustion attacks by creating many invalid stations
4. Risk crashes or undefined behavior from invalid station entries
## Stable Backport Criteria Met
1. **Fixes a real bug**: Yes - invalid frames are incorrectly accepted
2. **Security impact**: Yes - potential DoS via resource exhaustion
3. **Small and contained**: Yes - adds 4 lines of validation
4. **Clear fix**: Yes - straightforward address validation
5. **No new features**: Correct - only adds missing validation
6. **Tested**: Yes - verified by syzbot
## Not Like the "NO" Examples
Unlike the commits marked for NO backporting:
- This is not adding new functionality (like link-addressed frames
support)
- This is not a code cleanup or optimization
- This is fixing a concrete security issue reported by syzbot
- This has minimal risk of regression
The fix is essential for OCB mode security and should be backported to
all stable kernels that support OCB mode (since 2014).
net/mac80211/rx.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 26943c93f14c4..6c160ff2aab90 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4168,6 +4168,10 @@ static bool ieee80211_accept_frame(struct ieee80211_rx_data *rx)
if (!multicast &&
!ether_addr_equal(sdata->dev->dev_addr, hdr->addr1))
return false;
+ /* reject invalid/our STA address */
+ if (!is_valid_ether_addr(hdr->addr2) ||
+ ether_addr_equal(sdata->dev->dev_addr, hdr->addr2))
+ return false;
if (!rx->sta) {
int rate_idx;
if (status->encoding != RX_ENC_LEGACY)
--
2.39.5
next prev parent reply other threads:[~2025-06-24 4:13 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-24 4:12 [PATCH AUTOSEL 5.15 01/11] drm/msm: Fix a fence leak in submit error path Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 02/11] ALSA: sb: Don't allow changing the DMA mode during operations Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 03/11] ALSA: sb: Force to disable DMAs once when DMA mode is changed Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 04/11] ata: pata_cs5536: fix build on 32-bit UML Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 05/11] powerpc: Fix struct termio related ioctl macros Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 06/11] scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port() Sasha Levin
2025-06-24 4:12 ` Sasha Levin [this message]
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 08/11] wifi: ath6kl: remove WARN on bad firmware input Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 09/11] ACPICA: Refuse to evaluate a method if arguments are missing Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 10/11] mtd: spinand: fix memory leak of ECC engine conf Sasha Levin
2025-06-24 4:12 ` [PATCH AUTOSEL 5.15 11/11] rcu: Return early if callback is not specified Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250624041259.84940-7-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=johannes.berg@intel.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
--cc=syzbot+8b512026a7ec10dcbdd9@syzkaller.appspotmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.