PT-2026-121895

CVE-2026-98923

·

Published

2026-10-23

·

Updated

2026-10-23

Description by

Score
N/A
Not available

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.

In the Linux kernel, the following vulnerability has been resolved:
arm64: io: Reject non-user protection in ioremap prot()
Mapping a stack-top page via /dev/mem with PROT NONE and then reading that process's /proc//cmdline triggers a spurious WARN in ioremap prot() through generic access phys():
WARNING: ./arch/arm64/include/asm/io.h:275 at generic access phys Call trace: generic access phys+0x1c8/0x228 (P) access remote vm+0x2b4/0x398 access remote vm+0x14/0x30 get mm cmdline+0xf8/0x2a0 proc pid cmdline read+0x68/0x120
generic access phys() passes the protection derived from the user PTE to ioremap prot(). On arm64, a PROT NONE mapping is represented by a present-invalid PTE, so pte present() still returns true and the protection reaches ioremap prot().
A PROT NONE mapping does not have PTE USER, causing the existing WARN ON ONCE() in ioremap prot() to fire even though this is a valid user mapping. Execute-only mappings have the same issue and must not be readable through this path either.
ioremap prot() should therefore reject protection values without PTE USER without warning. This makes the access fail cleanly for PROT NONE and execute-only mappings while retaining the existing user-protection contract.
Vendors
Affected products
Related identifiers
Found an issue in the description? Have something to add? Feel free to write us 👾