🔍 CVE-2024-26947

5.5
CVSS Score
MEDIUM
2024-05-01
2026-10-30 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ARM 아키텍처 캐시 플러시 코드(flush.c)에서, pfn_valid() 의미 변경 이후 커널이 매핑하지 않은 예약 메모리 주소에 대해 캐시 연산을 시도하여 커널 패닉이 발생하는 문제입니다. 수정으로 PG_reserved 플래그를 확인하도록 변경되었습니다.

💡 쉬운 설명

ARM 기반 리눅스에서 일부 예약된 메모리 영역을 잘못 건드려 시스템이 갑자기 멈추는 버그입니다. 특정 장치(UIO)용 메모리 매핑 작업 중에 발생합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses Since commit a4d5613c4dc6 ("arm: extend pfn_valid to take into account freed memory map alignment") changes the semantics of pfn_valid() to check presence of the memory map for a PFN. A valid page for an address which is reserved but not mapped by the kernel[1], the system crashed during some uio test with the following memory layout: node 0: [mem 0x00000000c0a00000-0x00000000cc8fffff] node 0: [mem 0x00000000d0000000-0x00000000da1fffff] the uio layout is:0xc0900000, 0x100000 the crash backtrace like: Unable to handle kernel paging request at virtual address bff00000 [...] CPU: 1 PID: 465 Comm: startapp.bin Tainted: G O 5.10.0 #1 Hardware name: Generic DT based system PC is at b15_flush_kern_dcache_area+0x24/0x3c LR is at __sync_icache_dcache+0x6c/0x98 [...] (b15_flush_kern_dcache_area) from (__sync_icache_dcache+0x6c/0x98) (__sync_icache_dcache) from (set_pte_at+0x28/0x54) (set_pte_at) from (remap_pfn_range+0x1a0/0x274) (remap_pfn_range) from (uio_mmap+0x184/0x1b8 [uio]) (uio_mmap [uio]) from (__mmap_region+0x264/0x5f4) (__mmap_region) from (__do_mmap_mm+0x3ec/0x440) (__do_mmap_mm) from (do_mmap+0x50/0x58) (do_mmap) from (vm_mmap_pgoff+0xfc/0x188) (vm_mmap_pgoff) from (ksys_mmap_pgoff+0xac/0xc4) (ksys_mmap_pgoff) from (ret_fast_syscall+0x0/0x5c) Code: e0801001 e2423001 e1c00003 f57ff04f (ee070f3e) ---[ end trace 09cf0734c3805d52 ]--- Kernel panic - not syncing: Fatal exception So check if PG_reserved was set to solve this issue. [1]: https://lore.kernel.org/lkml/[email protected]/

📍 영향받는 시스템

ARM 아키텍처 기반 Linux 커널 (수정 이전 5.x 계열 등, 해당 커밋 적용 버전)

⚔️ 공격 벡터

로컬 사용자가 UIO 장치의 메모리 매핑(mmap) 작업을 수행하여 커널 패닉을 유발할 수 있으며, 서비스 거부(DoS) 형태입니다.

🛡️ 대응 방법

해당 수정이 포함된 최신 Linux 커널로 업데이트하거나 배포판의 보안 패치를 적용하세요.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 Git의 수정 커밋 포함 여부와 대조하여, 패치된 버전 이상인지 확인합니다. 구버전이면 취약할 수 있습니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel