CVE-2026-98923 in Linux
要約
〜によって VulDB • 2026年10月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
arm64: io: ioremap_prot()における非ユーザー保護の拒否
/proc/<pid>/cmdlineを通じてPROT_NONEでスタックトップページを/dev/mem経由でマップし、その後そのプロセスの/cmdlineを読み取ると、generic_access_phys()を通じてioremap_prot()内で誤ったWARN(警告)がトリガーされます:
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()は、ユーザーPTEから派生した保護情報をioremap_prot()に渡します。arm64では、PROT_NONEマッピングはpresent-invalidなPTEで表されるため、pte_present()はまだtrueを返し、その結果保護情報がioremap_prot()に到達してしまいます。
PROT_NONEマッピングにはPTE_USERフラグが含まれていないため、これは有効なユーザーマッピングであるにもかかわらず、ioremap_prot()内の既存のWARN_ON_ONCE()が発火します。実行専用(execute-only)のマッピングにも同様の問題があり、このパスを通じて読み込み可能であってはなりません。
したがって、ioremap_prot()はPTE_USERを含まない保護値を警告なしで拒否すべきです。これにより、PROT_NONEおよび実行専用マッピングに対するアクセスがクリーンに失敗しつつ、既存のユーザー保護契約が保持されます。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.