All vulnerabilities
CVE-2026-99201

Linux: netlink: avoid hashing the network namespace pointer

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in078deff25f8a849ecd1c3fe17b1e473b1cf44f28Fixed versionCVE List
Published28 Oct 2026Updated 28 Oct 2026CVE List

What fixes it

  • 078deff25f8a849ecd1c3fe17b1e473b1cf44f28LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

netlink: avoid hashing the network namespace pointer

The netlink rhashtable key includes a raw struct net pointer and a user-controlled port ID. Both /proc/net/netlink and socket diagnostics expose the table's bucket order. By binding and rebinding chosen NETLINK_USERSOCK port IDs, an unprivileged reader can distinguish equal buckets and recover the low bits of the Jenkins hash. Its 32-bit seed and the limited set of kernel-image slides can then be searched offline to recover the address of init_net.

Use the namespace's unique, non-address net_cookie in the comparison key instead. It is assigned before the per-net initializers run and remains unchanged for the namespace's lifetime. The lookup key and object hash are still built by netlink_compare_arg_init(), keeping lookup, insertion, removal and rehashing consistent while preserving namespace separation. Neither public table walker needs to change.

Reading the socket's namespace cookie in netlink_compare() is safe under RCU, including during namespace teardown. netlink_release() removes the socket from the hash table and defers its final put with call_rcu(). cleanup_net() runs the per-net exit methods and waits for outstanding RCU callbacks with rcu_barrier() before freeing namespace storage.

Unlike ns.ns_id, net_cookie is also available and initialized during setup_net() in older stable kernels, making the change straightforward to backport to v5.15 and later.

Text from CVE List

Affected versions 8

  • Linuxaffected: c428ecd1a21f1457ca3beb4df71b8a079c410e41 before bdd55b8a8acbf6b4840ab420eb6a63774bf4593bCVE List
  • Linuxaffected: c428ecd1a21f1457ca3beb4df71b8a079c410e41 before 078deff25f8a849ecd1c3fe17b1e473b1cf44f28CVE List
  • Linuxaffected: c428ecd1a21f1457ca3beb4df71b8a079c410e41 before f88bb3606e4bd11ee035b682cddc2999e604609aCVE List
  • Linuxaffected: 4.1CVE List
  • Linuxunaffected: all versions before 4.1CVE List
  • Linuxunaffected: 6.18.59 through 6.18.*CVE List
  • Linuxunaffected: 7.2.13 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 3