Skip to main content

Linux Kernel CVE-2025-39977

HIGH
2025-10-15 416baaa9-dc9f-4396-8d5f-8c081fb06d67
7.8
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Local low-privileged user (AV:L/PR:L); AC:H because success requires winning a narrow, non-deterministic thread scheduling race; use-after-free enables full memory-corruption impact (C/I/A:H).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
7.0 HIGH
AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat
4.7 MEDIUM
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Analysis Generated
Jul 30, 2026 - 06:38 vuln.today
CVSS changed
Jul 30, 2026 - 06:37 NVD
7.8 (HIGH)
CVE Published
Oct 15, 2025 - 08:15 nvd
UNKNOWN (no severity yet)
CVE Published
Oct 15, 2025 - 08:15 cve.org
HIGH 7.8

DescriptionCVE.org

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

futex: Prevent use-after-free during requeue-PI

syzbot managed to trigger the following race:

T1 T2

futex_wait_requeue_pi() futex_do_wait() schedule() futex_requeue() futex_proxy_trylock_atomic() futex_requeue_pi_prepare() requeue_pi_wake_futex() futex_requeue_pi_complete() /* preempt */

  • timeout/ signal wakes T1 *

futex_requeue_pi_wakeup_sync() // Q_REQUEUE_PI_LOCKED futex_hash_put() // back to userland, on stack futex_q is garbage

/* back */ wake_up_state(q->task, TASK_NORMAL);

In this scenario futex_wait_requeue_pi() is able to leave without using futex_q::lock_ptr for synchronization.

This can be prevented by reading futex_q::task before updating the futex_q::requeue_state. A reference on the task_struct is not needed because requeue_pi_wake_futex() is invoked with a spinlock_t held which implies a RCU read section.

Even if T1 terminates immediately after, the task_struct will remain valid during T2's wake_up_state(). A READ_ONCE on futex_q::task before futex_requeue_pi_complete() is enough because it ensures that the variable is read before the state is updated.

Read futex_q::task before updating the requeue state, use it for the following wakeup.

AnalysisAI

Local privilege-escalation-class use-after-free in the Linux kernel's futex subsystem (requeue-PI path) lets a low-privileged local user race futex_wait_requeue_pi() against futex_requeue() so a kernel wakeup dereferences an on-stack futex_q structure that has already been freed and returned to userland. The flaw carries high confidentiality, integrity, and availability impact (CVSS 7.8, AV:L). There is no public exploit identified at time of analysis, and EPSS is very low (0.05%, 15th percentile), consistent with a hard-to-weaponize timing race.

Technical ContextAI

The bug lives in the kernel's fast userspace mutex (futex) implementation, specifically the priority-inheritance requeue logic that backs glibc pthread condition variables and PI mutexes. In futex_wait_requeue_pi(), thread T1 blocks in futex_do_wait()/schedule(); concurrently thread T2 in futex_requeue() -> futex_proxy_trylock_atomic() -> requeue_pi_wake_futex() advances the requeue state. If a timeout or signal wakes T1 first, T1 exits through futex_requeue_pi_wakeup_sync()/futex_hash_put() back to userland, at which point its stack-allocated futex_q is garbage; T2 then calls wake_up_state(q->task, ...) on the stale pointer. This is a classic use-after-free driven by a race condition (CWE-416 / CWE-362; NVD lists CWE as N/A). The fix reads futex_q::task with READ_ONCE before futex_requeue_pi_complete() updates the requeue state, relying on the held spinlock (implying an RCU read section) to keep the task_struct valid for the wakeup without taking an extra reference.

Affected ProductsAI

The vulnerability affects the Linux kernel futex subsystem across stable branches prior to the fix; exact affected version ranges are not enumerated in the provided data (no CPE strings supplied) and must be derived from the stable trees corresponding to the fix commits at git.kernel.org (348736955ed6, a170b9c0dde8, b549113738e8, cb5d19a61274, d824b2dbdcfe). Downstream, Siemens confirms exposure in industrial/embedded products shipping this kernel via advisories https://cert-portal.siemens.com/productcert/html/ssa-082556.html and https://cert-portal.siemens.com/productcert/html/ssa-019113.html. All mainstream distributions built on the affected stable kernels should be treated as impacted until they pick up the corresponding backport.

RemediationAI

Apply the upstream fix that reads futex_q::task before updating the requeue state; upstream fix available (stable commits 348736955ed6ca6e99ca24b93b1d3fbfe352c181 plus backports a170b9c0dde8, b549113738e8, cb5d19a61274, d824b2dbdcfe at git.kernel.org/stable), released patched version not independently confirmed from the provided data - update to the patched stable/distribution kernel containing these commits and confirm the exact version via your distribution's security tracker. For Siemens products, follow the fixed versions in advisories SSA-082556 and SSA-019113. There is no practical in-kernel configuration workaround for this race; compensating controls are limited to reducing untrusted local access - restrict shell/local accounts on multi-tenant hosts and confine low-privileged workloads (seccomp/namespaces for containers), accepting that these do not close the race for any code path able to call futex requeue and may restrict legitimate workloads.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
Container suse/sl-micro/6.0/baremetal-os-container:latest Affected
Container suse/sl-micro/6.0/base-os-container:2.1.3-7.95 Affected
Container suse/sl-micro/6.0/kvm-os-container:2.1.3-6.115 Affected
Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.146 Affected
Container suse/sl-micro/6.0/toolbox:latest Affected

Share

CVE-2025-39977 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy