CVE-2026-68137

Summary

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

net/x25: fix use-after-free in x25_kill_by_neigh()

x25_kill_by_neigh() walks the global X.25 socket list looking for sockets attached to a terminating neighbour. x25_list_lock protects list membership while the lookup is in progress, but it does not pin a socket's lifetime after the lock is dropped.

The function currently drops x25_list_lock before calling lock_sock(s). A concurrent close can run x25_release(), remove the same socket from x25_list, and drop the last socket reference in that window. The neighbour teardown path can then lock or inspect a freed struct sock/struct x25_sock.

Take sock_hold(s) while x25_list_lock still proves that the list entry is live, then drop the temporary reference after the socket has been locked, rechecked, and released. Recheck x25_sk(s)->neighbour after lock_sock(), because another path may have disconnected the socket before this path acquired the socket lock. Restart the list walk after each disconnect because the list lock was dropped and the previous iterator state may no longer be valid.

A QEMU/KASAN run against origin/master reproduced a slab-use-after-free in x25_kill_by_neigh().

Affected Software

VendorProductVersion RangeStatus
LinuxLinux7781607938c8371d4c2b243527430241c62e39c2 < 3f4fe26c20c30bd5a2e2583e80685def0b27858caffected
LinuxLinux7781607938c8371d4c2b243527430241c62e39c2 < 610678d4be94b619c751572e8a58de705592cd07affected
LinuxLinux7781607938c8371d4c2b243527430241c62e39c2 < ec6d91a1bf2ebd767d3d43f6d249ee0ed3f4558aaffected
LinuxLinux7781607938c8371d4c2b243527430241c62e39c2 < 9aabda553184346f74810e2ee1d96920b4612e3faffected
LinuxLinux7781607938c8371d4c2b243527430241c62e39c2 < 5499e0602d2faafd42c580d25f615903c3fbe11baffected
LinuxLinuxdffc859d1d9560da594e4282091781b8d2715f00affected
LinuxLinux858642789ada1b48630f322e59416ca9fca3e6b7affected
LinuxLinux4c240c5a105557e4546d0836e694868f22fd09b0affected
LinuxLinux9acf05b4e7b55fdb712ef7b331dbce5bcd391d0faffected
LinuxLinux5c94b6205e87411dbe9dc1ca088eb36b8837fb47affected
LinuxLinux409570a619c1cda2e0fde6018a256b9e3d3ba0eeaffected
LinuxLinux4a279d7ee1c65411b4055ecd428b8aa2b1711c1faffected
LinuxLinux671529db75e6be777bb1c76aa07c2bdd2992be6daffected
LinuxLinux4.9.311 < 4.10affected
LinuxLinux4.14.276 < 4.15affected
LinuxLinux4.19.238 < 4.20affected
LinuxLinux5.4.189 < 5.5affected
LinuxLinux5.10.110 < 5.11affected
LinuxLinux5.15.33 < 5.16affected
LinuxLinux5.16.19 < 5.17affected
LinuxLinux5.17.2 < 5.18affected
LinuxLinux5.18affected
LinuxLinux0 < 5.18unaffected
LinuxLinux6.6.148 <= 6.6.*unaffected
LinuxLinux6.12.101 <= 6.12.*unaffected
LinuxLinux6.18.42 <= 6.18.*unaffected
LinuxLinux7.1.6 <= 7.1.*unaffected
LinuxLinux7.2-rc5 <= *unaffected

Weaknesses

References