CVE-2026-23346

Source
https://cve.org/CVERecord?id=CVE-2026-23346
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23346.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-23346
Downstream
Related
Published
2026-03-25T10:27:33.133Z
Modified
2026-07-15T01:48:58.166348932Z
Summary
arm64: io: Extract user memory type in ioremap_prot()
Details

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

arm64: io: Extract user memory type in ioremap_prot()

The only caller of ioremapprot() outside of the generic ioremap() implementation is genericaccessphys(), which passes a 'pgprott' value determined from the user mapping of the target 'pfn' being accessed by the kernel. On arm64, the 'pgprott' contains all of the non-address bits from the pte, including the permission controls, and so we end up returning a new user mapping from ioremapprot() which faults when accessed from the kernel on systems with PAN:

| Unable to handle kernel read from unreadable memory at virtual address ffff80008ea89000 | ... | Call trace: | __memcpyfromio+0x80/0xf8 | genericaccess_phys+0x20c/0x2b8 | __accessremotevm+0x46c/0x5b8 | access_remotevm+0x18/0x30 | environread+0x238/0x3e8 | vfsread+0xe4/0x2b0 | ksysread+0xcc/0x178 | __arm64sysread+0x4c/0x68

Extract only the memory type from the user 'pgprott' in ioremapprot() and assert that we're being passed a user mapping, to protect us against any changes in future that may require additional handling. To avoid falsely flagging users of ioremap(), provide our own ioremap() macro which simply wraps _ioremapprot().

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23346.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
893dea9ccd08dab924839354aba21d4ed7a9abc0
Fixed
64858b76ec67c5fc40fef8ec1841fecb78c1ebde
Fixed
eeecafce5afffb4da703666ebefbd4d6e2a5abf6
Fixed
3d64dcc0799c2d6921ba027716b7be721eb19fa8
Fixed
d1ad8fe7f72d73e1617bac79f2ec7a3bedf47e2a
Fixed
8f098037139b294050053123ab2bc0f819d08932

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23346.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.0.0
Fixed
6.6.143
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.93
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.17
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
6.19.7

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23346.json"