CVE-2026-31504
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
22/04/2026
Last modified:
28/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net: fix fanout UAF in packet_release() via NETDEV_UP race<br />
<br />
`packet_release()` has a race window where `NETDEV_UP` can re-register a<br />
socket into a fanout group&#39;s `arr[]` array. The re-registration is not<br />
cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout<br />
array.<br />
`packet_release()` does NOT zero `po->num` in its `bind_lock` section.<br />
After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex`<br />
still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)`<br />
that already found the socket in `sklist` can re-register the hook.<br />
For fanout sockets, this re-registration calls `__fanout_link(sk, po)`<br />
which adds the socket back into `f->arr[]` and increments `f->num_members`,<br />
but does NOT increment `f->sk_ref`.<br />
<br />
The fix sets `po->num` to zero in `packet_release` while `bind_lock` is<br />
held to prevent NETDEV_UP from linking, preventing the race window.<br />
<br />
This bug was found following an additional audit with Claude Code based<br />
on CVE-2025-38617.
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.1.1 (including) | 5.10.253 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.203 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.168 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.131 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.80 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.21 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.11 (excluding) |
| cpe:2.3:o:linux:linux_kernel:3.1:-:*:*:*:*:*:* | ||
| 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
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1b4c03f8892d955385c202009af7485364731bb9
- https://git.kernel.org/stable/c/42156f93d123436f2a27c468f18c966b7e5db796
- https://git.kernel.org/stable/c/42cfd7898eeed290c9fb73f732af1f7d6b0a703e
- https://git.kernel.org/stable/c/654386baef228c2992dbf604c819e4c7c35fc71b
- https://git.kernel.org/stable/c/75fe6db23705a1d55160081f7b37db9665b1880b
- https://git.kernel.org/stable/c/ceccbfc6de720ad633519a226715989cfb065af1
- https://git.kernel.org/stable/c/d0c7cdc15fdf8c4f91aca1928e52295d175b6ec6
- https://git.kernel.org/stable/c/ee642b1962caa9aa231c01abbd58bc453ae6b66e



