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>
Security readout for executives and security teams
Plain-English summary
A Linux X.25 networking timer can access a socket after it has been freed, potentially causing crashes or memory corruption. The supplied 9.8 score indicates severe theoretical impact, but practical exposure depends on whether the system uses the affected X.25 kernel functionality.
Executive priority
Treat this as urgent for systems using X.25 and promptly confirm exposure elsewhere. The maximum impact is critical, but the bundle does not prove broad default exposure or active attacks. Patch confirmed affected systems through supported distribution channels after compatibility testing.
Technical view
A race between socket destruction and asynchronous X.25 timer callbacks creates a use-after-free. Pending timers lacked socket references, cancellation did not await callbacks on other CPUs, and the heartbeat could rearm after unlinking. The fix uses reference-owning socket timer helpers, releases references during expiry, and prevents heartbeat rearming after socket removal.
Likely exposure
Exposure is most likely on Linux hosts where X.25 networking is present and exercised. The supplied affected-version data is ambiguous and includes apparent release and commit identifiers, so exact exposure should be established using the running distribution kernel build and referenced stable fixes.
Exploitation context
The bundle reports no CISA KEV listing and provides no evidence of active exploitation. The flaw was reproduced with KASAN after shortening the heartbeat period, demonstrating the memory-safety defect but not establishing real-world weaponization or reliable remote compromise.
Researcher notes
The failure is a cross-CPU timer-lifetime race involving x25_heartbeat_expiry, x25_timer_expiry, x25_destroy_timer, and socket teardown. The patch replaces raw timer operations with socket reference-aware helpers. Exact vulnerable release ranges and exploitability prerequisites cannot be resolved confidently from the flattened version data supplied.
Mitigation direction
Update to a vendor-supported kernel containing the applicable referenced stable fix.
Consult the Linux distribution advisory to map package versions to fixed commits.
Where operationally acceptable, disable unused X.25 functionality until the kernel is updated.
Prioritize externally reachable or untrusted systems that actively use X.25 networking.
Validation and detection
Record each host's running kernel and distribution package version.
Determine whether X.25 kernel functionality is configured, loaded, or operationally required.
Compare kernel builds with vendor guidance and the referenced stable commits.
After updating, verify the fixed kernel is running following reboot.
Review kernel logs for crashes or memory-safety reports involving X.25 timers.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-74628 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
9Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.