CVE-2026-31552 Details
Description
In the Linux kernel, the following vulnerability has been resolved: wifi: wlcore: Return -ENOMEM instead of -EAGAIN if there is not enough headroom Since upstream commit e75665dd0968 ("wifi: wlcore: ensure skb headroom before skb_push"), wl1271_tx_allocate() and with it wl1271_prepare_tx_frame() returns -EAGAIN if pskb_expand_head() fails. However, in wlcore_tx_work_locked(), a return value of -EAGAIN from wl1271_prepare_tx_frame() is interpreted as the aggregation buffer being full. This causes the code to flush the buffer, put the skb back at the head of the queue, and immediately retry the same skb in a tight while loop. Because wlcore_tx_work_locked() holds wl->mutex, and the retry happens immediately with GFP_ATOMIC, this will result in an infinite loop and a CPU soft lockup. Return -ENOMEM instead so the packet is dropped and the loop terminates. The problem was found by an experimental code review agent based on gemini-3.1-pro while reviewing backports into v6.18.y.
A vulnerability in the Linux kernel's WiFi WLCore driver can cause a CPU soft lockup. This issue arises when the function 'wl1271_tx_allocate()' fails to allocate enough headroom for a transmission packet, returning an error code. However, this error is misinterpreted as the aggregation buffer being full, leading to an infinite loop as the system repeatedly tries to resend the packet. The vulnerability affects several versions of the Linux kernel.
Users can upgrade to the latest version of the Linux kernel, where this vulnerability has been addressed. Instructions for upgrading the kernel can be found in the official Linux kernel documentation.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/12f9eef39e49716c763714bfda835a733d5f6dea | kernel.org | Patch |
| https://git.kernel.org/stable/c/46c670ff1ff466e5eccb3940f726586473dc053c | kernel.org | Patch |
| https://git.kernel.org/stable/c/980f793645540ca7a6318165cc12f49d5febeb99 | kernel.org | Patch |
| https://git.kernel.org/stable/c/a6dc74209462c4fe5a88718d2f3a5286886081c8 | kernel.org | Patch |
| https://git.kernel.org/stable/c/ceb46b40b021d21911ff8608ce4ed33c1264ad2f | kernel.org | Patch |
| https://git.kernel.org/stable/c/cfa64e2b3717be1da7c4c1aff7268a009e8c1610 | kernel.org | Patch |
| https://git.kernel.org/stable/c/deb353d9bb009638b7762cae2d0b6e8fdbb41a69 | kernel.org | Patch |
| https://git.kernel.org/stable/c/f2c06d718a7b85cbc59ceaa2ff3f46b178ac709c | kernel.org | Patch |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-835 | Loop with Unreachable Exit Condition ('Infinite Loop') | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 5.10.250, < 5.10.253 >= 5.15.200, < 5.15.203 >= 6.1.163, < 6.1.167 >= 6.6.124, < 6.6.130 >= 6.12.70, < 6.12.78 >= 6.18.10, < 6.18.20 >= 6.19.1, < 6.19.10 6.19 - 7.0 rc1 7.0 rc2 7.0 rc3 7.0 rc4 7.0 rc5 7.0 rc6 7.0 rc7 |
CPE
Remediation
| |
Change History
4 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | kernel.org |
| Apr 27, 2026 | Initial Analysis | [email protected] |
| Apr 27, 2026 | CVE Modified | kernel.org |
| Apr 24, 2026 | New CVE Received | kernel.org |