{"id":"CVE-2026-98923","revision":null,"records":[{"revision":"bc47e46024694de8beb1f96a6bdbf12d","observedAt":"2026-10-23T16:01:20.601+00:00","statement":{"source":"cve-program","id":"CVE-2026-98923","aliases":[],"title":"arm64: io: Reject non-user protection in ioremap_prot()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\narm64: io: Reject non-user protection in ioremap_prot()\n\nMapping a stack-top page via /dev/mem with PROT_NONE and then\nreading that process's /proc/<pid>/cmdline triggers a spurious WARN\nin ioremap_prot() through generic_access_phys():\n\n  WARNING: ./arch/arm64/include/asm/io.h:275 at generic_access_phys\n  Call trace:\n    generic_access_phys+0x1c8/0x228 (P)\n    __access_remote_vm+0x2b4/0x398\n    access_remote_vm+0x14/0x30\n    get_mm_cmdline+0xf8/0x2a0\n    proc_pid_cmdline_read+0x68/0x120\n\ngeneric_access_phys() passes the protection derived from the user PTE\nto ioremap_prot(). On arm64, a PROT_NONE mapping is represented by a\npresent-invalid PTE, so pte_present() still returns true and the\nprotection reaches ioremap_prot().\n\nA PROT_NONE mapping does not have PTE_USER, causing the existing\nWARN_ON_ONCE() in ioremap_prot() to fire even though this is a valid\nuser mapping. Execute-only mappings have the same issue and must not\nbe readable through this path either.\n\nioremap_prot() should therefore reject protection values without\nPTE_USER without warning. This makes the access fail cleanly for\nPROT_NONE and execute-only mappings while retaining the existing\nuser-protection contract.","state":0,"publishedAt":"2026-10-23T12:03:28.027+00:00","modifiedAt":"2026-10-23T12:05:45.179+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"arch/arm64/include/asm/io.h\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"64858b76ec67c5fc40fef8ec1841fecb78c1ebde\",\n                            \"lessThan\": \"fddc90d4af4550af410f52d11bbf6b5f36443838\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eeecafce5afffb4da703666ebefbd4d6e2a5abf6\",\n                            \"lessThan\": \"0b04af3d88bb7fc69b2d92457890608860e42365\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"3d64dcc0799c2d6921ba027716b7be721eb19fa8\",\n                            \"lessThan\": \"b17aa4955e3a694c663ebe99626e4c76ca4f7cfb\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"8f098037139b294050053123ab2bc0f819d08932\",\n                            \"lessThan\": \"9b583795feb51f8d50203228d001760d1344ef01\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"8f098037139b294050053123ab2bc0f819d08932\",\n                            \"lessThan\": \"bb756b11ad63832ebee58caf9e8f9381eaecff9f\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"d1ad8fe7f72d73e1617bac79f2ec7a3bedf47e2a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"6.6.143\",\n                            \"lessThan\": \"6.6.158\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.93\",\n                            \"lessThan\": \"6.12.112\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.17\",\n                            \"lessThan\": \"6.18.55\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.19.7\",\n                            \"lessThan\": \"6.20\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"arch/arm64/include/asm/io.h\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"7.0\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"7.0\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.158\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.112\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.55\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.9\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/fddc90d4af4550af410f52d11bbf6b5f36443838","https://git.kernel.org/stable/c/0b04af3d88bb7fc69b2d92457890608860e42365","https://git.kernel.org/stable/c/b17aa4955e3a694c663ebe99626e4c76ca4f7cfb","https://git.kernel.org/stable/c/9b583795feb51f8d50203228d001760d1344ef01","https://git.kernel.org/stable/c/bb756b11ad63832ebee58caf9e8f9381eaecff9f"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98923","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-98923","identifiers":["CVE-2026-98923"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-27T19:48:20.2022313+00:00","complete":true,"records":1758,"lastAttemptAt":"2026-10-27T19:48:20.2022313+00:00","lastSuccessAt":"2026-10-27T19:48:20.3995122+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.3995159+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-187d2b72c94ceb8c4417f1032ec3109a3a3a7b730abadb561d8cdd2a96e04d27-7cd07bd34af12feff0c266ac6b6067983cd304c0b7a53edb5f19b42fc0b28494","complete":true,"records":415364,"lastAttemptAt":"2026-10-27T19:46:06.1518767+00:00","lastSuccessAt":"2026-10-27T19:46:06.0285436+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:46:06.1518767+00:00","snapshotPublishedAt":"2026-10-27T19:18:28+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-3c3fdf72295742c7a66e189e2b63cb9e","complete":false,"records":5734,"lastAttemptAt":"2026-10-27T20:00:28.3741297+00:00","lastSuccessAt":"2026-10-27T20:00:28.37+00:00","error":null,"lastVerifiedAt":"2026-10-27T20:00:28.37+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":1000,"expectedIdentifiers":13501,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-27T19:48:20.2022313+00:00","complete":true,"records":1093,"lastAttemptAt":"2026-10-27T19:48:20.2022313+00:00","lastSuccessAt":"2026-10-27T19:48:20.4010872+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.4010877+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-3bd7ce170fa9469593b2b05a4c145743","complete":true,"records":13438,"lastAttemptAt":"2026-10-27T19:48:21.6831828+00:00","lastSuccessAt":"2026-10-27T19:48:21.679+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:21.679+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13501,"expectedIdentifiers":13501,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-0a9352f15ff9b42ef0668815b17985da54b0862a5d24cb9a13f2a99c14c0f811","complete":true,"records":9785,"lastAttemptAt":"2026-10-27T19:48:20.0598535+00:00","lastSuccessAt":"2026-10-27T19:48:19.7606489+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.0598535+00:00","snapshotPublishedAt":"2026-10-27T19:18:07+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-bad5d31e7f6a5e3d338e11d8789069b63620a403f927730769688b42f768e4f6","complete":true,"records":1965,"lastAttemptAt":"2026-10-27T19:46:06.3074736+00:00","lastSuccessAt":"2026-10-26T16:35:43.1460623+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:46:06.3074736+00:00","snapshotPublishedAt":"2026-10-26T16:18:29+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-3a5b306d60fc44677a03a8afc99d87e6c5402770ef68d560f94a8c3ad3802b75","complete":true,"records":3001,"lastAttemptAt":"2026-10-27T19:48:20.1662846+00:00","lastSuccessAt":"2026-10-27T16:45:49.0050993+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:20.1662846+00:00","snapshotPublishedAt":"2026-10-27T16:33:43+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-fc1c62e1c2d70dda08a497ed7a59029d5d84def9eb7702ebf314b9dadea06e2f","complete":true,"records":230836,"lastAttemptAt":"2026-10-27T19:48:10.3426958+00:00","lastSuccessAt":"2026-10-27T19:48:08.9643671+00:00","error":null,"lastVerifiedAt":"2026-10-27T19:48:10.3426958+00:00","snapshotPublishedAt":"2026-10-27T19:18:16+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}