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

futex: Fix private hash use-after-free on resize

poll_state_synchronize_rcu(mm->futex.phash.batches) is used by
futex_ref_drop() to check that a grace period has passed since the
current hash was published. This relies on batches referencing a grace
period which started after the hash pointer was assigned.

__futex_pivot_hash() sets mmph->batches before it replaces mmph->hash:

scoped_guard(rcu) {
mmph->batches = get_state_synchronize_rcu();
rcu_assign_pointer(mmph->hash, new);
}

The scoped_guard(rcu) doesn't stop new grace periods from starting, and
if one starts between those two assignments, futex_ref_drop() can move
forward while a reader still holds a pointer to the old hash.

Fix things by setting mmph->batches after assigning mmph->hash. The
scoped_guard(rcu) isn't needed, so let's drop that as well.
Published: 2026-10-18
Score: 4.7 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free leading to kernel memory corruption
Action: Upgrade Kernel
AI Analysis

Impact

The vulnerability originates in the Linux kernel’s futex subsystem, where resizing the private hash can create a reordering bug. During the resize the new hash pointer is assigned before the associated batch state is updated, allowing a reader to hold a dangling reference to freed memory if a grace period starts in the intervening window. This use‑after‑free can corrupt kernel memory and, if an attacker can trigger the race, could potentially be escalated to privilege‑escalation or denial‑of‑service attacks.

Affected Systems

The flaw impacts every Linux kernel build that contains the unpatched futex hash‑resizing logic. Since the vulnerability existed before the patch commit, any system running a kernel older than the fix is considered vulnerable, including all major distribution kernels that have not applied the update.

Risk and Exploitability

The CVSS score of 4.7 denotes a medium severity, but the EPSS score of less than 1% implies a very low probability of exploitation in the wild. Although the bug is not listed in CISA’s KEV catalog, the low exploitability combined with the high potential impact means that the risk is modest in absence of a public exploit, yet it remains a serious concern for systems that must resist kernel‑level compromise.

Generated by OpenCVE AI on October 22, 2026 at 21:03 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a Linux kernel update that incorporates the commit fixing the futex hash resizing issue.
  • If a kernel update is not immediately possible, obtain the patch from the provided commit URLs, apply it to the futex source, and rebuild the kernel.
  • Reduce the attack surface by disabling or auditing applications that perform extensive futex operations and monitor system logs for futex‑related crashes or anomalous behavior.

Generated by OpenCVE AI on October 22, 2026 at 21:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 22 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


Sun, 18 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 18 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: futex: Fix private hash use-after-free on resize poll_state_synchronize_rcu(mm->futex.phash.batches) is used by futex_ref_drop() to check that a grace period has passed since the current hash was published. This relies on batches referencing a grace period which started after the hash pointer was assigned. __futex_pivot_hash() sets mmph->batches before it replaces mmph->hash: scoped_guard(rcu) { mmph->batches = get_state_synchronize_rcu(); rcu_assign_pointer(mmph->hash, new); } The scoped_guard(rcu) doesn't stop new grace periods from starting, and if one starts between those two assignments, futex_ref_drop() can move forward while a reader still holds a pointer to the old hash. Fix things by setting mmph->batches after assigning mmph->hash. The scoped_guard(rcu) isn't needed, so let's drop that as well.
Title futex: Fix private hash use-after-free on resize
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-19T09:25:41.209Z

Reserved: 2026-09-25T10:25:14.370Z

Link: CVE-2026-98788

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:32.787

Modified: 2026-10-19T10:19:42.873

Link: CVE-2026-98788

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T15:48:24Z

Links: CVE-2026-98788 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T21:15:12Z

Weaknesses