🔍 CVE-2024-42233

7.8
CVSS Score
HIGH
2024-08-07
2026-08-04 11:19
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 filemap 구성 요소에서 pte_offset_map() 함수 사용 시 레이스 컨디션이 발생할 수 있는 취약점입니다. 페이지 테이블 언맵(unmap) 이후 PTL(Page Table Lock) 포인터가 유효하지 않게 되어 Use-After-Free(UAF)를 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터의 메모리를 관리하는 과정에서 데이터가 이미 삭제되었는데 이를 다시 사용하려고 시도할 때 발생하는 오류입니다. 이로 인해 시스템이 충돌하거나 해커가 권한을 탈취할 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: filemap: replace pte_offset_map() with pte_offset_map_nolock() The vmf->ptl in filemap_fault_recheck_pte_none() is still set from handle_pte_fault(). But at the same time, we did a pte_unmap(vmf->pte). After a pte_unmap(vmf->pte) unmap and rcu_read_unlock(), the page table may be racily changed and vmf->ptl maybe fails to protect the actual page table. Fix this by replacing pte_offset_map() with pte_offset_map_nolock(). As David said, the PTL pointer might be stale so if we continue to use it infilemap_fault_recheck_pte_none(), it might trigger UAF. Also, if the PTL fails, the issue fixed by commit 58f327f2ce80 ("filemap: avoid unnecessary major faults in filemap_fault()") might reappear.

📍 영향받는 시스템

Linux Kernel (filemap 관련 모듈을 사용하는 버전)

⚔️ 공격 벡터

메모리 관리 과정의 레이스 컨디션을 이용한 Use-After-Free 공격

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 pte_offset_map_nolock()이 적용된 커널을 사용하십시오.

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel