9.8

CVE-2026-74628

net/x25: fix use-after-free of the socket by its timers

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

net/x25: fix use-after-free of the socket by its timers

The x25 timers are armed with mod_timer() and cancelled with
timer_delete(), so a pending timer holds no reference on the socket and a
cancel does not wait for a callback already running on another CPU.

x25_heartbeat_expiry() also rearms unconditionally, so it can reinstall
sk->sk_timer after __x25_destroy_socket() has passed its cancel point.
The following __sock_put() frees the socket while the timer is still
queued, and the next expiry uses freed memory.  KASAN reports a
slab-use-after-free on the kmalloc-2k object freed by close().

timer_delete_sync() cannot be used here: x25_heartbeat_expiry() and
x25_timer_expiry() both reach the cancels from inside the timer they
would wait on, through __x25_destroy_socket() and x25_disconnect().

Arm the timers with sk_reset_timer() and cancel them with sk_stop_timer()
so that an armed timer owns a reference, and release it in both expiry
handlers.  Rearm the heartbeat only while sk_hashed(sk) is still true,
since __x25_destroy_socket() unlinks the socket before dropping it.  Arm
the deferred destroy timer the same way and drop its reference in
x25_destroy_timer().

Reproduced on net with KASAN, with the heartbeat period shortened so the
window recurs.  With this patch the reproducer no longer triggers a
report and /proc/net/x25 drains.

Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
Produkt Linux
Default Statusunaffected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 6b79659590f0f82a9b8efd2ffd55ec6399ebfc33
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < fdd9ac50b9b61ef2b2d52c5156aff788be91454d
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 1fc9f6d2c7c9fdb341bfe8ca449c990632299ea6
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 3c4919be5d910db4beebca420953858606fba7d8
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 4bc522b33438fefc3272840ae5988771863a4f1f
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < e92c7e2b41d1528a830bc64c5e4e46dfa8133dda
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 2195424c3da2ef1829a63b807e3a900a90e57d85
Status affected
HerstellerLinux
Produkt Linux
Default Statusaffected
Version 2.6.12
Status affected
Version 0
Version < 2.6.12
Status unaffected
Version <= 5.15.*
Version 5.15.217
Status unaffected
Version <= 6.1.*
Version 6.1.184
Status unaffected
Version <= 6.6.*
Version 6.6.153
Status unaffected
Version <= 6.12.*
Version 6.12.105
Status unaffected
Version <= 6.18.*
Version 6.18.45
Status unaffected
Version <= 7.1.*
Version 7.1.9
Status unaffected
Version <= *
Version 7.2
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.17% 0.067
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 9.8 3.9 5.9
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/1fc9f6d2c7c9fdb341bfe8ca449c990632299ea6
https://git.kernel.org/stable/c/2195424c3da2ef1829a63b807e3a900a90e57d85
https://git.kernel.org/stable/c/3c4919be5d910db4beebca420953858606fba7d8
https://git.kernel.org/stable/c/4bc522b33438fefc3272840ae5988771863a4f1f
https://git.kernel.org/stable/c/6b79659590f0f82a9b8efd2ffd55ec6399ebfc33
https://git.kernel.org/stable/c/e92c7e2b41d1528a830bc64c5e4e46dfa8133dda
https://git.kernel.org/stable/c/fdd9ac50b9b61ef2b2d52c5156aff788be91454d