CVE-2026-98923 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 23.

리눅스 커널에서 다음 취약점이 해결되었습니다:

arm64: io - ioremap_prot()에서 비사용자 보호를 거부함

/proc/mem을 통해 stack-top 페이지를 PROT_NONE으로 매핑한 후 해당 프로세스의 /proc/<pid>/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 및 execute-only 매핑에 대해 접근이 깔끔하게 실패하도록 하면서 기존 사용자 보호 계약은 유지됩니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!