CVE-2026-23073
Severity CVSS v4.0:
Pending analysis
Type:
CWE-787
Out-of-bounds Write
Publication date:
04/02/2026
Last modified:
18/03/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
wifi: rsi: Fix memory corruption due to not set vif driver data size<br />
<br />
The struct ieee80211_vif contains trailing space for vif driver data,<br />
when struct ieee80211_vif is allocated, the total memory size that is<br />
allocated is sizeof(struct ieee80211_vif) + size of vif driver data.<br />
The size of vif driver data is set by each WiFi driver as needed.<br />
<br />
The RSI911x driver does not set vif driver data size, no trailing space<br />
for vif driver data is therefore allocated past struct ieee80211_vif .<br />
The RSI911x driver does however use the vif driver data to store its<br />
vif driver data structure "struct vif_priv". An access to vif->drv_priv<br />
leads to access out of struct ieee80211_vif bounds and corruption of<br />
some memory.<br />
<br />
In case of the failure observed locally, rsi_mac80211_add_interface()<br />
would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv;<br />
vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member<br />
struct list_head new_flows . The flow = list_first_entry(head, struct<br />
fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus<br />
address, which when accessed causes a crash.<br />
<br />
The trigger is very simple, boot the machine with init=/bin/sh , mount<br />
devtmpfs, sysfs, procfs, and then do "ip link set wlan0 up", "sleep 1",<br />
"ip link set wlan0 down" and the crash occurs.<br />
<br />
Fix this by setting the correct size of vif driver data, which is the<br />
size of "struct vif_priv", so that memory is allocated and the driver<br />
can store its driver data in it, instead of corrupting memory around<br />
it.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.15 (including) | 5.10.249 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.199 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.162 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.122 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.68 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.8 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0d7c9e793e351cbbe9e06a9ca47d77b6ad288fb0
- https://git.kernel.org/stable/c/31efbcff90884ea5f65bf3d1de01267db51ee3d1
- https://git.kernel.org/stable/c/49ef094fdbc3526e5db2aebb404b84f79c5603dc
- https://git.kernel.org/stable/c/4f431d88ea8093afc7ba55edf4652978c5a68f33
- https://git.kernel.org/stable/c/7761d7801f40e61069b4df3db88b36d80d089f8a
- https://git.kernel.org/stable/c/7c54d0c3e2cad4300be721ec2aecfcf8a63bc9f4
- https://git.kernel.org/stable/c/99129d80a5d4989ef8566f434f3589f60f28042b



