Skip to main content

Linux Kernel CVE-2026-72043

| EUVDEUVD-2026-59001 HIGH
2026-08-15 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-f7xg-fgxp-p6w3
7.1
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

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

Local access and low privilege required to fork and write anonymous mappings; no user interaction; integrity and confidentiality impacted via data loss and potential stale-page exposure.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE
4.4 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
Red Hat
5.5 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
None

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 06:26 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
7.1 (HIGH)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 06:21 cve.org
HIGH 7.1
CVE Published
Aug 15, 2026 - 06:21 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

LoongArch: Fix missing dirty page tracking in {pte,pmd}_wrprotect()

When hardware page table walker (PTW) is enabled on LoongArch, the CPU may set _PAGE_DIRTY directly in the page table entry during a write TLB miss, without going through the software TLB store handler. The software TLB store handler (tlbex.S:254) sets both _PAGE_DIRTY and_PAGE_MODIFIED together:

ori t0, t0, (_PAGE_VALID | _PAGE_DIRTY | _PAGE_MODIFIED)

Since hardware PTW only sets _PAGE_DIRTY, the software-only bit, i.e. _PAGE_MODIFIED is left unchanged. This creates a window where a PTE has _PAGE_DIRTY set (hardware knows the page is dirty) but _PAGE_MODIFIED clear (software is unaware).

When fork()/clone() triggers copy-on-write, __copy_present_ptes() calls pte_wrprotect(), which unconditionally clears both the _PAGE_WRITE and _PAGE_DIRTY bits:

pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_DIRTY);

Since _PAGE_MODIFIED was never set, the dirtiness information is lost completely. Subsequently, when memory pressure triggers page reclaim, page_mkclean() / try_to_unmap() sees the page as clean (i.e. pte_dirty() returns false) and the page may be freed without writeback, causing data corruption.

Fix this by propagating the _PAGE_DIRTY bit to the _PAGE_MODIFIED bit in both pte_wrprotect() and pmd_wrprotect() before clearing writeable bits:

if (pte_val(pte) & _PAGE_DIRTY) pte_val(pte) |= _PAGE_MODIFIED;

The pmd_wrprotect() fix handles the CONFIG_TRANSPARENT_HUGEPAGE case, where pmd entries need the same treatment.

This ensures the software dirty tracking bit (checked by pte_dirty() and pmd_dirty(), which read both the _PAGE_DIRTY and _PAGE_MODIFIED bits) is preserved across fork COW write-protection.

The issue was found by the LTP madvise09 test case, which exercises page reclaim after "madvise(MADV_FREE), write and fork" operation sequence on private anonymous mappings.

AnalysisAI

Data corruption in the Linux kernel's LoongArch memory management subsystem allows a local low-privileged user to cause silent loss of written data or potential exposure of stale page contents via a race condition between hardware page table walker behavior and software dirty-bit tracking. Affected systems are those running LoongArch CPUs with hardware PTW enabled - a condition that applies to the architecture by design - across kernel versions from 5.19 through stable branches prior to 6.1.178, 6.6.145, 6.12.97, 6.18.40, and 7.1.5. No public exploit code exists and EPSS stands at 0.21% (11th percentile), though the bug was reliably reproduced via the LTP madvise09 test, confirming it is not theoretical.

Technical ContextAI

LoongArch processors implement a hardware page table walker (PTW) that can service TLB write-miss faults autonomously, setting the _PAGE_DIRTY bit in PTE entries without invoking the kernel's software TLB store handler (tlbex.S). The software handler explicitly sets both _PAGE_DIRTY and _PAGE_MODIFIED together; the hardware does not. _PAGE_MODIFIED is the software-only canonical dirty indicator used by pte_dirty() and pmd_dirty() throughout the kernel's page reclaim and writeback paths. When fork() or clone() triggers copy-on-write, __copy_present_ptes() calls pte_wrprotect(), which clears both _PAGE_WRITE and _PAGE_DIRTY unconditionally. If the hardware had previously set _PAGE_DIRTY without _PAGE_MODIFIED, clearing _PAGE_DIRTY at this point erases all dirtiness evidence. Subsequently, page_mkclean() and try_to_unmap() see the page as clean, allowing the page reclaim path to free the physical page without triggering writeback to swap or a backing file. The CWE is not formally assigned, but the root cause class is an incorrect state synchronization between hardware and software dirty tracking (analogous to CWE-362 or CWE-1050). The CONFIG_TRANSPARENT_HUGEPAGE path is also affected, requiring the parallel fix in pmd_wrprotect().

RemediationAI

Upgrade to the patched kernel version for the relevant stable branch: 6.1.178, 6.6.145, 6.12.97, 6.18.40, 7.1.5, or 7.2-rc1+. The upstream fix commits are documented at https://git.kernel.org/stable/c/018e9828eb523c638fa3d9bdf0fd4956b74555b2, https://git.kernel.org/stable/c/39bb21a4bff0d70058bf752d7b5aa2e2ccc864a9, https://git.kernel.org/stable/c/76f88650763a35cbf1384c65d66d096fa31cc58d, https://git.kernel.org/stable/c/a65f49b6f7ece756394f8f0e85570020e7fd0e35, https://git.kernel.org/stable/c/e483da960892c41fa7f0cf0d2fc2410d65a483d6, and https://git.kernel.org/stable/c/e8a916579e427af32f2de8213dfa23c5df6e6664. No practical compensating control exists short of patching, because the hardware PTW is a core architectural feature and cannot be disabled without disabling TLB fill for write faults entirely, which would require arch-level changes and incur severe performance penalties. For systems that cannot be patched immediately, restricting untrusted local user accounts and avoiding workloads that combine MADV_FREE, writes to private anonymous mappings, and fork under memory pressure reduces practical risk without eliminating the underlying defect.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-72043 vulnerability details – vuln.today

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