CVE-2026-31552
Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
24/04/2026
Última modificación:
27/04/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
wifi: wlcore: Return -ENOMEM instead of -EAGAIN if there is not enough headroom<br />
<br />
Since upstream commit e75665dd0968 ("wifi: wlcore: ensure skb headroom<br />
before skb_push"), wl1271_tx_allocate() and with it<br />
wl1271_prepare_tx_frame() returns -EAGAIN if pskb_expand_head() fails.<br />
However, in wlcore_tx_work_locked(), a return value of -EAGAIN from<br />
wl1271_prepare_tx_frame() is interpreted as the aggregation buffer being<br />
full. This causes the code to flush the buffer, put the skb back at the<br />
head of the queue, and immediately retry the same skb in a tight while<br />
loop.<br />
<br />
Because wlcore_tx_work_locked() holds wl->mutex, and the retry happens<br />
immediately with GFP_ATOMIC, this will result in an infinite loop and a<br />
CPU soft lockup. Return -ENOMEM instead so the packet is dropped and<br />
the loop terminates.<br />
<br />
The problem was found by an experimental code review agent based on<br />
gemini-3.1-pro while reviewing backports into v6.18.y.
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.250 (incluyendo) | 5.10.253 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.200 (incluyendo) | 5.15.203 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1.163 (incluyendo) | 6.1.167 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.124 (incluyendo) | 6.6.130 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.12.70 (incluyendo) | 6.12.78 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.18.10 (incluyendo) | 6.18.20 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19.1 (incluyendo) | 6.19.10 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:6.19:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/12f9eef39e49716c763714bfda835a733d5f6dea
- https://git.kernel.org/stable/c/46c670ff1ff466e5eccb3940f726586473dc053c
- https://git.kernel.org/stable/c/980f793645540ca7a6318165cc12f49d5febeb99
- https://git.kernel.org/stable/c/a6dc74209462c4fe5a88718d2f3a5286886081c8
- https://git.kernel.org/stable/c/ceb46b40b021d21911ff8608ce4ed33c1264ad2f
- https://git.kernel.org/stable/c/cfa64e2b3717be1da7c4c1aff7268a009e8c1610
- https://git.kernel.org/stable/c/deb353d9bb009638b7762cae2d0b6e8fdbb41a69
- https://git.kernel.org/stable/c/f2c06d718a7b85cbc59ceaa2ff3f46b178ac709c



