Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5ce9df1 authored by Toke Høiland-Jørgensen's avatar Toke Høiland-Jørgensen Committed by Greg Kroah-Hartman
Browse files

wifi: ath9k_htc: Abort software beacon handling if disabled



[ Upstream commit ac4e317a95a1092b5da5b9918b7118759342641c ]

A malicious USB device can send a WMI_SWBA_EVENTID event from an
ath9k_htc-managed device before beaconing has been enabled. This causes
a device-by-zero error in the driver, leading to either a crash or an
out of bounds read.

Prevent this by aborting the handling in ath9k_htc_swba() if beacons are
not enabled.

Reported-by: default avatarRobert Morris <rtm@csail.mit.edu>
Closes: https://lore.kernel.org/r/88967.1743099372@localhost


Fixes: 832f6a18 ("ath9k_htc: Add beacon slots")
Signed-off-by: default avatarToke Høiland-Jørgensen <toke@toke.dk>
Link: https://patch.msgid.link/20250402112217.58533-1-toke@toke.dk


Signed-off-by: default avatarJeff Johnson <jeff.johnson@oss.qualcomm.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 44ebe361
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -290,6 +290,9 @@ void ath9k_htc_swba(struct ath9k_htc_priv *priv,
	struct ath_common *common = ath9k_hw_common(priv->ah);
	int slot;

	if (!priv->cur_beacon_conf.enable_beacon)
		return;

	if (swba->beacon_pending != 0) {
		priv->beacon.bmisscnt++;
		if (priv->beacon.bmisscnt > BSTUCK_THRESHOLD) {