Skip to main content

Linux Kernel EUVDEUVD-2026-80594

| CVE-2026-89986 HIGH
2026-09-16 Linux GHSA-f5rq-g72v-q29m
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
2.5 LOW

Local unprivileged user can set the mempolicy (AV:L/PR:L), but the atomic RCU vmalloc-rehash trigger is timing-dependent (AC:H); impact is a splat/instability only (A:L, C:N/I:N).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

6
Metadata Corrected
Sep 16, 2026 - 16:40 vuln.today
tag: Information Disclosure removed
Analysis Generated
Sep 16, 2026 - 16:17 vuln.today
CVSS changed
Sep 16, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Sep 16, 2026 - 11:03 EUVD
CVE Published
Sep 16, 2026 - 10:33 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 16, 2026 - 10:33 cve.org
HIGH 7.8

DescriptionCVE.org

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

mm/mempolicy: fix sleeping allocation in alloc_pages_bulk_weighted_interleave()

syzbot reported a sleeping function called from invalid context splat in bucket_table_alloc().

When rhashtable_insert_slow() rehashes the table under rcu_read_lock(), it calls bucket_table_alloc(..., GFP_ATOMIC | __GFP_NOWARN). If the bucket table allocation uses vmalloc, __vmalloc_node_range_noprof() invokes vm_area_alloc_pages() -> alloc_pages_bulk_mempolicy_noprof() with the passed GFP_ATOMIC flags.

If the current task has an MPOL_WEIGHTED_INTERLEAVE mempolicy, alloc_pages_bulk_weighted_interleave() is called and currently hardcodes GFP_KERNEL when allocating the temporary weights array, triggering a might_alloc() splat in atomic/RCU contexts.

Pass the gfp flags (masked with GFP_RECLAIM_MASK to strip page-allocator zone modifiers like __GFP_HIGHMEM) received by alloc_pages_bulk_weighted_interleave() to kmalloc() instead of hardcoding GFP_KERNEL. Since the weights buffer is immediately initialized in full, kmalloc() is sufficient.

AnalysisAI

A context-inappropriate allocation in the Linux kernel's weighted-interleave memory policy path causes a sleeping (GFP_KERNEL) allocation to be performed while executing in atomic/RCU context. The bug exists only in kernels that provide the MPOL_WEIGHTED_INTERLEAVE mempolicy, introduced in Linux 6.9, and is triggered when an authenticated local user has that policy set on the current task while an rhashtable bucket-table allocation rehashes under rcu_read_lock() with GFP_ATOMIC and falls back to vmalloc (__vmalloc_node_range_noprof → vm_area_alloc_pages → alloc_pages_bulk_mempolicy → alloc_pages_bulk_weighted_interleave), which then hardcodes GFP_KERNEL for its temporary weights array. …

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

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Requires local code execution able to set an MPOL_WEIGHTED_INTERLEAVE mempolicy on the current task (introduced in 6.9), AND a code path where a bucket-table allocation via rhashtable_insert_slow() rehashes under rcu_read_lock() with GFP_ATOMIC and falls back to vmalloc (__vmalloc_node_range_noprof → vm_area_alloc_pages → alloc_pages_bulk_mempolicy). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment This is a low-real-risk defect despite the vendor's 7.8 HIGH rating. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Apply the vendor patch by upgrading to Linux 6.12.110, 6.18.51, 7.2.5 or 7.3-rc2 (or a later release containing the corresponding stable-branch commit: bcb3d0c867ee40dc48e9c085bf328fbc679b6656, 0ceda28f371df9e0bbdaa29214f71fe8298f23d8, 2943f1f4b7f2816177060eb9f551f2e6d8b629ba or 540e583b66d6402bf556fde5e53c817a54c1afe5, see https://git.kernel.org/stable/c/bcb3d0c867ee40dc48e9c085bf328fbc679b6656 and the EUVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-89986); vendor-released patches are available, so no long-term compensating controls should be needed. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory every Linux host and container base image to identify systems running kernel 6.9 or later, confirming whether the MPOL_WEIGHTED_INTERLEAVE mempolicy is compiled in and whether CONFIG_DEBUG_ATOMIC_SLEEP is enabled in staging or production builds, and flag any server where local users have memory-policy privileges (set_mempolicy/mbind) that could enable the weighted-interleave path. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-80594 vulnerability details – vuln.today

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