CVE-2026-31504 PUBLISHED

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

Assigner: Linux
Reserved: 09.03.2026 Published: 22.04.2026 Updated: 22.04.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to ee642b1962caa9aa231c01abbd58bc453ae6b66e (excl.)
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to 42cfd7898eeed290c9fb73f732af1f7d6b0a703e (excl.)
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to 1b4c03f8892d955385c202009af7485364731bb9 (excl.)
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to 654386baef228c2992dbf604c819e4c7c35fc71b (excl.)
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to 75fe6db23705a1d55160081f7b37db9665b1880b (excl.)
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to d0c7cdc15fdf8c4f91aca1928e52295d175b6ec6 (excl.)
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to ceccbfc6de720ad633519a226715989cfb065af1 (excl.)
  • affected from ce06b03e60fc19c680d1bf873e779bf11c2fc518 to 42156f93d123436f2a27c468f18c966b7e5db796 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.1 is affected
  • unaffected from 0 to 3.1 (excl.)
  • unaffected from 5.10.253 to 5.10.* (incl.)
  • unaffected from 5.15.203 to 5.15.* (incl.)
  • unaffected from 6.1.168 to 6.1.* (incl.)
  • unaffected from 6.6.131 to 6.6.* (incl.)
  • unaffected from 6.12.80 to 6.12.* (incl.)
  • unaffected from 6.18.21 to 6.18.* (incl.)
  • unaffected from 6.19.11 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References