All vulnerabilities
CVE-2026-93239

Linux: arm64: mm: Fix the lockless page-table walk in show_pte()

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.20%Chance of exploitation activity in the next 30 days, higher than 9% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in08d931a0a850ad16a64f2cd23a19f40795cdbdf7Also 68cbd70795dd8c06e7ccdc4eb0b74c5b180076c3, 0f05d95b99164a9ccc4cf4a4920e0ff0228138adCVE List
Published24 Sep 2026Updated 19 Oct 2026CVE List

What fixes it

  • 08d931a0a850ad16a64f2cd23a19f40795cdbdf7LinuxCVE List
  • 68cbd70795dd8c06e7ccdc4eb0b74c5b180076c3LinuxCVE List
  • 0f05d95b99164a9ccc4cf4a4920e0ff0228138adLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

arm64: mm: Fix the lockless page-table walk in show_pte()

show_pte() walks page tables locklessly and can run with interrupts enabled. A concurrent teardown can free a table page while it is being walked. It can also clear a parent entry after show_pte() checked it; the regular pXd_offset() helpers then reread the cleared entry and can derive a bogus lower-level pointer and fault again.

Use the lockless offset helpers with the saved parent entries, as gup_fast() does, and pass the saved PMD to pte_offset_map().

For task page tables, arm64 selects MMU_GATHER_RCU_TABLE_FREE. Disable local interrupts around the walk to hold off RCU-deferred table frees and block the tlb_remove_table_sync_one() IPI until the walk is finished.

Place the IRQ guard after the header print. This does not make the output a consistent snapshot, but prevents the task page-table walk from dereferencing a released table page or deriving a pointer from a different parent value.

Text from CVE List

Affected versions 12

  • Linuxaffected: 1d18c47c735e8adfe531fc41fae31e98f86b68fe before 08d931a0a850ad16a64f2cd23a19f40795cdbdf7CVE List
  • Linuxaffected: 1d18c47c735e8adfe531fc41fae31e98f86b68fe before b28fe65a36b8209b6adcf2722c7ce974cf9ac8d1CVE List
  • Linuxaffected: 1d18c47c735e8adfe531fc41fae31e98f86b68fe before 68cbd70795dd8c06e7ccdc4eb0b74c5b180076c3CVE List
  • Linuxaffected: 1d18c47c735e8adfe531fc41fae31e98f86b68fe before 0f05d95b99164a9ccc4cf4a4920e0ff0228138adCVE List
  • Linuxaffected: 1d18c47c735e8adfe531fc41fae31e98f86b68fe before a77644d009dece1104b6fcc6e322b0e4503db0d6CVE List
  • Linuxaffected: 3.7CVE List
  • Linuxunaffected: all versions before 3.7CVE List
  • Linuxunaffected: 6.6.157 through 6.6.*CVE List
  • Linuxunaffected: 6.12.110 through 6.12.*CVE List
  • Linuxunaffected: 6.18.51 through 6.18.*CVE List
  • Linuxunaffected: 7.2.5 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5