Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Race condition requires winning a narrow scheduler-vs-destructor timing window, elevating AC to H; PR:L reflects required local user credentials confirmed by description.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
5DescriptionCVE.org
In the Linux kernel, the following vulnerability has been resolved:
sched/psi: Shut down rtpoll_timer in psi_cgroup_free()
psi_schedule_rtpoll_work() is called locklessly from the scheduler hotpath and can race psi_trigger_destroy() taking down the last rtpoll trigger under rtpoll_trigger_lock:
psi_schedule_rtpoll_work() psi_trigger_destroy()
rcu_read_lock(); task = rcu_dereference(rtpoll_task); rcu_assign_pointer(rtpoll_task, NULL); timer_delete(&rtpoll_timer); mod_timer(&rtpoll_timer, ...); rcu_read_unlock(); synchronize_rcu(); kthread_stop(task_to_destroy);
The group can then be freed with the re-armed timer still pending, and poll_timer_fn() runs on freed memory.
461daba06bdc ("psi: eliminate kthread_worker from psi trigger scheduling mechanism") deleted the timer synchronously after the synchronize_rcu(), which prevented this but raced trigger creation instead: the deletion could cancel the timer that a new trigger set armed during the grace period and, as creation also reinitialized the timer at the time, corrupt it. 8f91efd870ea ("psi: Fix race between psi_trigger_create/destroy") moved the initialization into group_init() and the deletion into the locked section, trading the creation races for the window above.
Neither placement in the destruction path works. A pending timer firing while the group is alive is harmless though. poll_timer_fn() just wakes the rtpoll waitqueue and doesn't re-arm itself. Bind the timer to the group's lifetime instead and shut it down in psi_cgroup_free(). Nothing can arm it by then. timer_shutdown_sync() because the timer is never armed again.
AnalysisAI
Use-after-free in the Linux kernel's PSI (Pressure Stall Information) scheduler subsystem exposes local low-privilege users to potential memory corruption and privilege escalation on affected kernel versions. The race condition between psi_schedule_rtpoll_work(), called locklessly from the scheduler hotpath, and psi_trigger_destroy() allows the rtpoll_timer to be re-armed after the cgroup group has been freed, causing poll_timer_fn() to execute on deallocated memory. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires local interactive or SSH access to the target system with at least low-privilege user credentials (CVSS PR:L confirmed). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 7.8 score (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) reflects a local low-privilege exploitation path with full triad impact, but the AC:L rating is arguably optimistic for a timing-sensitive race condition that requires winning a narrow scheduler window - an independent assessment would rate this AC:H, yielding a score closer to 7.0. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | A local attacker with standard user credentials on a multi-tenant Linux system running an affected kernel repeatedly creates and destroys PSI triggers in a tight loop, attempting to win the race window between mod_timer() in psi_schedule_rtpoll_work() and timer_delete() in psi_trigger_destroy(). If the race is won, poll_timer_fn() fires after the cgroup has been freed, corrupting heap memory that can potentially be exploited for local privilege escalation to root. … |
| Remediation | Upgrade to a patched kernel: Linux 6.1.183, 6.6.152, 6.12.104, 7.1.9, 7.2, or 6.18.45, as documented in EUVD-2026-64531 and the upstream stable commits at git.kernel.org. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours: Inventory all systems running Linux kernel versions prior to 6.1.183, 6.6.152, 6.12.104, 7.1.9, 7.2, or 6.18.45, prioritizing production systems and servers with untrusted or multi-tenant user access. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-64531
GHSA-2rjf-492g-58r9