CVE-2026-74594
Received Received - Intake

Race Condition in Linux Kernel PSI Scheduler Leading to Use-After-Free

Vulnerability report for CVE-2026-74594, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-22

Last updated on: 2026-08-22

Assigner: kernel.org

Description

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-22
Last Modified
2026-08-22
Generated
2026-08-22
AI Q&A
2026-08-22
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a race condition in the Linux kernel's Pressure Stall Information (PSI) subsystem. It occurs when the psi_schedule_rtpoll_work() function and psi_trigger_destroy() function access shared timer resources without proper synchronization. The timer can be rearmed after being deleted but before the group is fully freed, leading to a use-after-free scenario where the timer runs on freed memory.

Detection Guidance

This vulnerability is specific to the Linux kernel's PSI (Pressure Stall Information) subsystem and requires kernel-level inspection. Detection involves checking kernel logs for related errors or verifying the presence of the vulnerable code paths. Commands like 'dmesg | grep psi' or examining kernel version with 'uname -a' may help identify affected systems.

Impact Analysis

This vulnerability could allow an attacker to cause a denial-of-service condition or potentially execute arbitrary code with kernel privileges. It may lead to system crashes, data corruption, or unauthorized access depending on the attacker's capabilities and system configuration.

Mitigation Strategies

Apply the latest kernel patches or updates that address this issue. If patches are unavailable, consider disabling PSI features via kernel boot parameters like 'psi=0' or restricting access to cgroup v2 resources where PSI is used.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-74594. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart