Bug 1222451 (CVE-2024-26693)

Summary: VUL-0: CVE-2024-26693: kernel: wifi: iwlwifi: mvm: fix a crash when we run out of stations
Product: [Novell Products] SUSE Security Incidents Reporter: SMASH SMASH <smash_bz>
Component: IncidentsAssignee: Security Team bot <security-team>
Status: RESOLVED FIXED QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P5 - None CC: gianluca.gabrielli
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/400166/
Whiteboard: CVSSv3.1:SUSE:CVE-2024-26693:5.5:(AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Found By: Security Response Team Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description SMASH SMASH 2024-04-08 10:15:47 UTC
In the Linux kernel, the following vulnerability has been resolved:

wifi: iwlwifi: mvm: fix a crash when we run out of stations

A DoS tool that injects loads of authentication frames made our AP
crash. The iwl_mvm_is_dup() function couldn't find the per-queue
dup_data which was not allocated.

The root cause for that is that we ran out of stations in the firmware
and we didn't really add the station to the firmware, yet we didn't
return an error to mac80211.
Mac80211 was thinking that we have the station and because of that,
sta_info::uploaded was set to 1. This allowed
ieee80211_find_sta_by_ifaddr() to return a valid station object, but
that ieee80211_sta didn't have any iwl_mvm_sta object initialized and
that caused the crash mentioned earlier when we got Rx on that station.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-26693
https://www.cve.org/CVERecord?id=CVE-2024-26693
https://git.kernel.org/stable/c/00f4eb31b8193f6070ce24df636883f9c104ca95
https://git.kernel.org/stable/c/b7198383ef2debe748118996f627452281cf27d7
https://git.kernel.org/stable/c/c12f0f4d4caf23b1bfdc2602b6b70d56bdcd6aa7
https://bugzilla.redhat.com/show_bug.cgi?id=2273094