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

locking/rt: Fix the incorrect RCU protection in rt_spin_unlock()

rt_spin_unlock() releases the RCU protection before unlocking the
lock. That opens the door for the following UAF scenario:

T1 T2
spin_lock(&p->lock); rcu_read_lock();
invalidate(p); p = rcu_dereference(ptr);
rcu_assign_pointer(ptr, NULL); if (!p) return;
spin_unlock(&p->lock); spin_lock(&p->lock)
lock(&lock->lock);
rcu_read_lock();
kfree_rcu(p); rcu_read_unlock();
....
spin_unlock(&p->lock)
rcu_read_unlock(); // Ends grace period
rcu_do_batch()
kfree(p);
UAF -> rt_mutex_cmpxchg_release(&lock->lock...)

Regular spinlocks keep preemption disabled accross the unlock operation,
which provides full RCU protection, but the RT substitution fails to
resemble that. Same applies for the rwlock substitution.

Move the rcu_read_unlock() invocation past the unlock operations to match
the non-RT semantics. This makes it asymmetric vs. rt_xxx_lock(), but
that's harmless as the caller needs to hold RCU read lock across the lock
operation. The migrate_enable() call stays before the unlock operation
because there is no per CPU operation in the unlock path which would
require migration to be kept disabled.
Published: 2026-08-15
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free leading to kernel memory corruption
Action: Apply Patch
AI Analysis

Impact

rt_spin_unlock() releases the RCU read lock before unlocking the real‑time spinlock, creating a race that can lead to a use‑after‑free. When a kernel object is freed while another thread still holds a reference via RCU, the memory may be reallocated for a different purpose, resulting in arbitrary memory corruption. An attacker who can orchestrate the provided timing scenario could potentially execute arbitrary code in kernel mode or crash the system. Based on the description, it is inferred that the attack vector requires a race condition between RCU read lock usage and rt_spin_unlock, as the official advisory does not explicitly state how the exploit is triggered but the presence of a race implies it can be crafted.

Affected Systems

All Linux kernel builds that use the unpatched rt_spin_unlock implementation are affected. This includes every kernel release before the commit that reorders the rcu_read_unlock call, as indicated by the links to the commit series. The vulnerability applies to the Linux kernel across all distributions that ship a kernel older than the patched version, regardless of distribution.

Risk and Exploitability

The CVSS score of 9.8 signals critical severity. The EPSS score is reported as <1%, indicating a very low probability of exploitation in the wild. The flaw is not listed in CISA KEV, suggesting no known widespread exploitation. However, because this is a classic use‑after‑free that can lead to kernel memory corruption, a local attacker with sufficient privileges to execute code can use it to gain elevated privileges or crash the system. The likely attack vector is a local privilege escalation via a carefully orchestrated race condition, inferred from the described use‑after‑free scenario.

Generated by OpenCVE AI on October 20, 2026 at 11:00 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the rt_spin_unlock patch, such as the latest stable release or a release that implements the commit series linked in the advisory.
  • If using a custom kernel, cherry‑pick and apply the commits referenced in the advisory to the local source tree, rebuild the kernel, and reboot the system.
  • Until the kernel can be updated, avoid using real‑time spinlocks in critical code paths or disable real‑time scheduling features if they are not required, thereby reducing the exposure window.

Generated by OpenCVE AI on October 20, 2026 at 11:00 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4745-1 linux-6.12 security update
Debian DLA Debian DLA DLA-4777-1 linux security update
Ubuntu USN Ubuntu USN USN-8781-1 Linux kernel (NVIDIA Tegra) vulnerabilities
Ubuntu USN Ubuntu USN USN-8816-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8816-2 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8816-3 Linux kernel (Oracle) vulnerabilities
Ubuntu USN Ubuntu USN USN-8816-4 Linux kernel (GKE) vulnerabilities
Ubuntu USN Ubuntu USN USN-8888-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8888-2 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8917-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8918-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8961-1 Linux kernel vulnerabilities
History

Mon, 19 Oct 2026 22:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 16 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Sun, 23 Aug 2026 13:15:00 +0000


Tue, 18 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Sat, 15 Aug 2026 08:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: locking/rt: Fix the incorrect RCU protection in rt_spin_unlock() rt_spin_unlock() releases the RCU protection before unlocking the lock. That opens the door for the following UAF scenario: T1 T2 spin_lock(&p->lock); rcu_read_lock(); invalidate(p); p = rcu_dereference(ptr); rcu_assign_pointer(ptr, NULL); if (!p) return; spin_unlock(&p->lock); spin_lock(&p->lock) lock(&lock->lock); rcu_read_lock(); kfree_rcu(p); rcu_read_unlock(); .... spin_unlock(&p->lock) rcu_read_unlock(); // Ends grace period rcu_do_batch() kfree(p); UAF -> rt_mutex_cmpxchg_release(&lock->lock...) Regular spinlocks keep preemption disabled accross the unlock operation, which provides full RCU protection, but the RT substitution fails to resemble that. Same applies for the rwlock substitution. Move the rcu_read_unlock() invocation past the unlock operations to match the non-RT semantics. This makes it asymmetric vs. rt_xxx_lock(), but that's harmless as the caller needs to hold RCU read lock across the lock operation. The migrate_enable() call stays before the unlock operation because there is no per CPU operation in the unlock path which would require migration to be kept disabled.
Title locking/rt: Fix the incorrect RCU protection in rt_spin_unlock()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T21:19:26.463Z

Reserved: 2026-08-09T03:40:39.903Z

Link: CVE-2026-72069

cve-icon Vulnrichment

Updated: 2026-10-16T15:51:21.537Z

cve-icon NVD

Status : Received

Published: 2026-08-15T06:21:16.607

Modified: 2026-10-19T22:17:25.740

Link: CVE-2026-72069

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72069 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T11:00:15Z

Weaknesses