CVE-2026-31644
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
24/04/2026
Last modified:
27/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net: lan966x: fix use-after-free and leak in lan966x_fdma_reload()<br />
<br />
When lan966x_fdma_reload() fails to allocate new RX buffers, the restore<br />
path restarts DMA using old descriptors whose pages were already freed<br />
via lan966x_fdma_rx_free_pages(). Since page_pool_put_full_page() can<br />
release pages back to the buddy allocator, the hardware may DMA into<br />
memory now owned by other kernel subsystems.<br />
<br />
Additionally, on the restore path, the newly created page pool (if<br />
allocation partially succeeded) is overwritten without being destroyed,<br />
leaking it.<br />
<br />
Fix both issues by deferring the release of old pages until after the<br />
new allocation succeeds. Save the old page array before the allocation<br />
so old pages can be freed on the success path. On the failure path, the<br />
old descriptors, pages and page pool are all still valid, making the<br />
restore safe. Also ensure the restore path re-enables NAPI and wakes<br />
the netdev, matching the success path.
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:*:*:*:*:*:*:*:* | 6.12.1 (including) | 6.12.82 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.23 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.13 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.12:-:*:*:*:*:*:* | ||
| 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:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



