CVE-2026-31504CWE-362CWE-416

CVE-2026-31504

High · published April 22, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
1.0
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: fix fanout UAF in packet_release() via NETDEV_UP race

`packet_release()` has a race window where `NETDEV_UP` can re-register a

socket into a fanout group's `arr[]` array. The re-registration is not

cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout

array.

`packet_release()` does NOT zero `po->num` in its `bind_lock` section.

After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex`

still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)`

that already found the socket in `sklist` can re-register the hook.

For fanout sockets, this re-registration calls `__fanout_link(sk, po)`

which adds the socket back into `f->arr[]` and increments `f->num_members`,

but does NOT increment `f->sk_ref`.

The fix sets `po->num` to zero in `packet_release` while `bind_lock` is

held to prevent NETDEV_UP from linking, preventing the race window.

This bug was found following an additional audit with Claude Code based

on CVE-2025-38617.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00104 · 1.0th percentile
Weaknesses
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'); CWE-416 · Use After Free
Published
2026-04-22T18:16Z
Affected products (15)
ProductVersionsFixed in
linux/linux_kernel≥ 3.1.1, < 5.10.2535.10.253
linux/linux_kernel≥ 5.11, < 5.15.2035.15.203
linux/linux_kernel≥ 5.16, < 6.1.1686.1.168
linux/linux_kernel≥ 6.2, < 6.6.1316.6.131
linux/linux_kernel≥ 6.7, < 6.12.806.12.80
linux/linux_kernel≥ 6.13, < 6.18.216.18.21
linux/linux_kernel≥ 6.19, < 6.19.116.19.11
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (11)
EPSS history
Timeline
  • 22 APR 13:54Z
    net: fix fanout UAF in packet_release() via NETDEV_UP race
    cvelistv5