Skip to main content

Linux Kernel EUVDEUVD-2026-86243

| CVE-2026-93237 HIGH
2026-09-24 Linux GHSA-883q-wh28-fg8c
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Local privileged access on affected LoongArch CPU
  2. Delivery
    Trigger ZONE_DEVICE/memory-hotplug region allocation
  3. Exploit
    Region selected outside vmemmap window
  4. Execution
    vmemmap_populate wraps memmap into low memory
  5. Persist
    Kernel page tables silently corrupted
  6. Impact
    Crash or memory corruption

Vulnerability Assessment

Exploitation Conditions

Requires a LoongArch CPU whose probed physical address bits (cpu_pabits from CPUCFG1) are fewer than MAX_PHYSMEM_BITS - e.g. the Loongson-2K series - running a kernel built with CONFIG_SPARSEMEM_VMEMMAP where LoongArch did not define DIRECT_MAP_PHYSMEM_END (so the mm.h fallback applies). It is then triggered locally by an operation that invokes get_free_mem_region()/ZONE_DEVICE region allocation, such as device-memory hotplug or GPU/amdkfd bringup. Current Loongson-3C6000 configs are kept in bounds by commit 2969b42c8f99, so those are not affected; the bug is not remotely reachable and requires the specific hardware + config + code path intersection, sharply limiting realistic exposure.

Impact

The input CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H = 7.8) is the standard auto-generated 'kernel local memory corruption' rating and should be treated skeptically for this specific bug. There is no EPSS score, no CISA KEV listing, and no public exploit code (no public exploit identified at time of analysis) - all three signals point to a NON-priority, latent robustness defect rather than an exploited weapon. Crucially, the flaw is NOT attacker-driven: it manifests when get_free_mem_region()/mhp_get_pluggable_range() pick a ZONE_DEVICE region outside the vmemmap window on LoongArch CPUs whose cpu_pabits is smaller than MAX_PHYSMEM_BITS, and vmemmap_populate() then wraps the memmap into low memory and silently corrupts page tables. The referenced real-world manifestation was a crash triggered by the amdkfd driver during ZONE_DEVICE init on a Loongson-3C6000, i.e. accidental corruption during normal device-memory setup, not a chosen-input exploit. The AC:L in the input is questionable: exploitation is bounded to a narrow hardware/config intersection (LoongArch, specific cpu_pabits, SPARSEMEM_VMEMMAP, device-memory hotplug path), so real-world attack complexity is high. Net: high CVSS number but low real-world risk given the niche architecture, absence of exploitation signals, and non-adversarial trigger path.

Exploit ScenarioDerived

On an affected LoongArch system (e.g. Loongson-2K with fewer physical address bits than MAX_PHYSMEM_BITS), a local privileged action that triggers ZONE_DEVICE region allocation - such as device-memory hotplug or an amdkfd/GPU driver bringup - causes get_free_mem_region() to return a region outside the vmemmap window. vmemmap_populate() then wraps the memmap range into low memory and silently corrupts kernel page tables, leading to crashes or memory corruption. No public exploit code exists, and the observed trigger was an ordinary driver init rather than a crafted attack.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Page-table corruption can be triggered on LoongArch Linux kernels when the architecture fails to define DIRECT_MAP_PHYSMEM_END, causing get_free_mem_region() and mhp_get_pluggable_range() to fall back to the generic mm.h constant (1ULL << MAX_PHYSMEM_BITS) - 1 instead of the CPU's actual vmemmap-covered range. On LoongArch CPUs whose probed physical address bits (cpu_pabits from CPUCFG1) are fewer than MAX_PHYSMEM_BITS - notably the Loongson-2K series - a ZONE_DEVICE region can be allocated outside the vmemmap window, and vmemmap_populate() then wraps the memmap range around into low memory, silently corrupting page tables. The bug is local (CVSS vector PR:L), requires specific hardware plus CONFIG_SPARSEMEM_VMEMMAP and the ZONE_DEVICE/device-memory or amdkfd code path, and our independent assessment rates it AC:H with only C:L (versus the auto-generated 7.8 score with AC:L/C:H); no public exploit code or CISA KEV entry was identified at time of analysis.

RemediationAI

Primary fix: upgrade LoongArch kernels to a build containing the mainline DIRECT_MAP_PHYSMEM_END definition - the listed fixed versions are Linux 7.2.5, 6.18.51, and 7.3-rc1, corresponding to upstream commits 2677f97a67fdbc62a82ce1faa67791f54451d36f, ab275a23b4d9f04ca6c2f5f6a3246194e045a761, and 55e18311c705cceef6c34d522ea387b1f0069bab (see https://git.kernel.org/stable/c/ab275a23b4d9f04ca6c2f5f6a3246194e045a761, https://git.kernel.org/stable/c/55e18311c705cceef6c34d522ea387b1f0069bab, https://git.kernel.org/stable/c/2677f97a67fdbc62a82ce1faa67791f54451d36f and the EUVD/NVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-93237); backporting the macro definition is a small, low-risk change for vendor kernels. Where immediate upgrade is not possible on Loongson-2K-class hardware, compensating controls are limited because the trigger is a kernel-internal ZONE_DEVICE region allocation: avoid device-memory hotplug and GPU/amdkfd bringup paths on those systems - the practical trade-off is loss of that device/hotplug capability - and note that merely disabling CONFIG_SPARSEMEM_VMEMMAP changes memory-model behavior and is not recommended as a general workaround. Because exploitation requires local invocation of the affected allocation path rather than a remote vector, restricting interactive and unprivileged local access (and avoiding untrusted local workloads on affected Loongson-2K systems) reduces but does not eliminate exposure, and the top-of-address-space crash previously seen with amdkfd on Loongson-3C6000 is already mitigated by commit 2969b42c8f99 on current configs.

Affected VersionsENISA

Linux patch: 7.2.5
Linux patch: 6.18.51
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <2677f97a67fdbc62a82ce1faa67791f54451d36f
Linux 0 <7.2.5
Linux patch: 7.3-rc1
Linux 0 <6.18.51
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <ab275a23b4d9f04ca6c2f5f6a3246194e045a761
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <55e18311c705cceef6c34d522ea387b1f0069bab

Affected Packages

euvd linux fix: 6.18.51, 7.2.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

On Linux, the vmemmap is the virtual mapping of struct page metadata for physical memory, and on LoongArch it only covers physical space below 2^(cpu_pabits+1) - the VMEMMAP_SIZE window, where cpu_pabits is probed from CPUCFG1 at boot. Code paths that allocate ZONE_DEVICE (device/GPU memory) regions - get_free_mem_region() and mhp_get_pluggable_range() - bound their search to DIRECT_MAP_PHYSMEM_END. LoongArch never defined that macro, so the generic fallback in include/linux/mm.h applied under CONFIG_SPARSEMEM_VMEMMAP: a compile-time constant (1ULL << MAX_PHYSMEM_BITS) - 1 that does not track the CPU's real physical address width. On hardware with fewer physical address bits than MAX_PHYSMEM_BITS, the search can therefore select a region above the vmemmap window; when vmemmap_populate() later maps it, the memmap range wraps around and is mapped into low memory, silently corrupting page tables. The upstream fix defines DIRECT_MAP_PHYSMEM_END as (1ULL << (cpu_pabits + 1)) - 1, capped at (1ULL << MAX_PHYSMEM_BITS) - 1 under CONFIG_SPARSEMEM, mirroring the earlier RISC-V change (commit f3336b48cf9d). The same over-high region previously crashed memmap_init_zone_device() with amdkfd on Loongson-3C6000 (6.16); commit 2969b42c8f99 ('LoongArch/mm: align vmemmap to maximal folio size') keeps that region in bounds on current Loongson-3C6000 configurations, leaving CPUs with smaller cpu_pabits such as the Loongson-2K series exposed. The bug class is incorrect bounds definition leading to out-of-range memory mapping and memory corruption; no CWE was supplied by the source data.

Know when Amd gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

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 6.5 MEDIUM

Local trigger on a narrow LoongArch hardware/config intersection via privileged memory-hotplug path (AV:L, AC:H, PR:L); page-table corruption gives I:H/A:H, with limited confidentiality (C:L).

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

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

4
CVSS changed
Sep 25, 2026 - 05:23 NVD
7.8 (HIGH)
Patch available
Sep 24, 2026 - 17:18 EUVD
CVE Published
Sep 24, 2026 - 15:33 cve.org
HIGH 7.8
CVE Published
Sep 24, 2026 - 15:33 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

LoongArch: Add DIRECT_MAP_PHYSMEM_END definition

get_free_mem_region() and mhp_get_pluggable_range() bound their search to DIRECT_MAP_PHYSMEM_END. LoongArch does not define it, so the fallback in include/linux/mm.h applies: under CONFIG_SPARSEMEM_VMEMMAP it is (1ULL << MAX_PHYSMEM_BITS) - 1, a compile-time constant that does not adapt to the CPU's physical address space bits (cpu_pabits, probed from CPUCFG1).

The vmemmap window only covers physical space below 2^(cpu_pabits+1) (i.e. VMEMMAP_SIZE), so on CPUs with fewer physical address bits than MAX_PHYSMEM_BITS the fallback allows get_free_mem_region() to return a ZONE_DEVICE region outside the vmemmap window; vmemmap_populate() then wraps the memmap range around and maps it into low memory, silently corrupting the page tables. The same search also picked the top-of- address-space region that crashed memmap_init_zone_device() with amdkfd on Loongson-3C6000 in 6.16 [1]; the commit 2969b42c8f99 ("LoongArch/mm: align vmemmap to maximal folio size") keeps that region in bounds on current Loongson-3C6000 configs, but CPUs with smaller cpu_pabits (e.g. the Loongson-2K series) are still affected.

Define DIRECT_MAP_PHYSMEM_END as the vmemmap-covered physical range, (1ULL << (cpu_pabits + 1)) - 1, capped at (1ULL << MAX_PHYSMEM_BITS) - 1 under CONFIG_SPARSEMEM, similar to the commit f3336b48cf9d ("riscv: mm: Define DIRECT_MAP_PHYSMEM_END").

[1] https://lore.kernel.org/amd-gfx/20250814032153.227285-1-jeffbai@aosc.io/

Executive ViewAI

Why It Matters

A high-severity defect in the Linux kernel for LoongArch platforms, particularly Loongson-2K series processors, can cause silent page-table corruption and lead to system instability or crashes. It affects only systems with specific kernel memory-management features and device-memory or amdkfd code paths enabled, and exploitation requires local access with low privileges on the affected hardware. Leadership should prioritize patching for any LoongArch-based production systems because the flaw can disrupt availability and data integrity, although no public exploit or active exploitation has been identified at the time of analysis.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
Linux is ubiquitous but bug is LoongArch-only, a niche Chinese CPU architecture
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Amd

View all
CVE-2021-22986 CRITICAL POC
9.8 Mar 31

On BIG-IP versions 16.0.x before 16.0.1.1, 15.1.x before 15.1.2.1, 14.1.x before 14.1.4, 13.1.x before 13.1.3.6, and 12.

CVE-2026-46174 HIGH POC
8.8 May 28

Local privilege escalation and information disclosure in the Linux kernel on AMD Zen2 CPUs allows low-privileged users t

CVE-2020-6103 CRITICAL POC
9.9 Jul 20

An exploitable code execution vulnerability exists in the Shader functionality of AMD Radeon DirectX 11 Driver atidxx64.

CVE-2020-6102 CRITICAL POC
9.9 Jul 20

An exploitable code execution vulnerability exists in the Shader functionality of AMD Radeon DirectX 11 Driver atidxx64.

CVE-2020-6101 CRITICAL POC
9.9 Jul 20

An exploitable code execution vulnerability exists in the Shader functionality of AMD Radeon DirectX 11 Driver atidxx64.

CVE-2020-6100 CRITICAL POC
9.9 Jul 20

An exploitable memory corruption vulnerability exists in AMD atidxx64.dll 26.20.15019.19000 graphics driver. Rated criti

CVE-2018-6546 CRITICAL POC
9.8 Apr 13

plays_service.exe in the plays.tv service before 1.27.7.0, as distributed in AMD driver-installation packages and Gaming

CVE-2021-3653 HIGH POC
8.8 Sep 29

A flaw was found in the KVM's AMD code for supporting SVM nested virtualization. Rated high severity (CVSS 8.8), this vu

CVE-2020-12138 HIGH POC
8.8 Apr 27

AMD ATI atillk64.sys 5.11.9.0 allows low-privileged users to interact directly with physical memory by calling one of se

CVE-2019-5098 HIGH POC
8.6 Dec 05

An exploitable out-of-bounds read vulnerability exists in AMD ATIDXX64.DLL driver, version 26.20.13001.29010. Rated high

CVE-2015-7724 HIGH POC
7.8 Jun 07

AMD fglrx-driver before 15.9 allows local users to gain privileges via a symlink attack. Rated high severity (CVSS 7.8),

CVE-2015-7723 HIGH POC
7.8 Jun 07

AMD fglrx-driver before 15.7 allows local users to gain privileges via a symlink attack. Rated high severity (CVSS 7.8),

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected

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