wifi: rtw88: fix OOB read from firmware RX descriptor exceeding DMA buffer
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: rtw88: fix OOB read from firmware RX descriptor exceeding DMA buffer In rtw_pci_rx_napi(), new_len is computed as the sum of pkt_len (14-bit descriptor field, max 16383) and pkt_offset (drv_info_sz + shift, both firmware-controlled). The result can exceed RTK_PCI_RX_BUF_SIZE (11478), causing an out-of-bounds read from the pre-allocated DMA buffer when skb_put_data copies new_len bytes. The USB transport already validates this (rtw_usb_rx_data_put checks against RTW_USB_MAX_RECVBUF_SZ); the PCIe path does not. Add a check that new_len does not exceed the DMA buffer size.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 913bd7d3d3d842b5c1d2b908a0201efa8fc79793; From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 45abc14ab3f15da7d689f1a8809c1a01240a94d9; From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 08193e733e5d4790e6c937af86d78793b02709be; From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 6a3c384393d3f0b41669ed5a2e88744aad9d87c8; From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 26c183a86ea4dd1f2ff90c6f783649e7f5722a10; From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 01155ded5d4dad61840a9a3c33ab56778ef1f100; From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 1554fa522f16ec7c5c342ad33fe734eeb6eb2452; From e3037485c68ec1a299ff41160d8fedbd4abc29b9 · fixed in 6e76e9ed273dfb4b3333a5ebbb94958cc5752ab6
- Linux Linux
5.2
- KernelLinux
From 5.2.0 · fixed in 5.10.261; From 5.11.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5
References 8
git.kernel.org
- stable/c/913bd7d3d3d842b5c1d2b908a0201efa8fc79793
- stable/c/45abc14ab3f15da7d689f1a8809c1a01240a94d9
- stable/c/08193e733e5d4790e6c937af86d78793b02709be
- stable/c/6a3c384393d3f0b41669ed5a2e88744aad9d87c8
- stable/c/26c183a86ea4dd1f2ff90c6f783649e7f5722a10
- stable/c/01155ded5d4dad61840a9a3c33ab56778ef1f100
- stable/c/1554fa522f16ec7c5c342ad33fe734eeb6eb2452
- stable/c/6e76e9ed273dfb4b3333a5ebbb94958cc5752ab6