🔍 CVE-2026-64514

0.0
CVSS Score
UNKNOWN
2026-07-25
2026-08-17 05:17
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 userfaultfd 메커니즘에서 페이지 테이블 엔트리(PTE)의 쓰기 가능 여부를 확인하는 과정에 결함이 있습니다. 페이지가 스왑되거나 마이그레이션 중일 때 잠금 없이 PTE를 읽으면 잘못된 비트 해석으로 인해 쓰기 권한 확인이 부정확해질 수 있습니다. 이로 인해 특정 상황에서 스레드가 깨어나지 못하고 영구적으로 잠드는 상태(hang)에 빠질 수 있습니다.

💡 쉬운 설명

컴퓨터의 메모리 관리 기능 중 하나에서 데이터가 이동 중일 때 상태를 잘못 읽는 버그가 발견되었습니다. 이 버그가 발생하면 특정 프로그램이 응답하지 않고 멈춰버리는 현상이 나타날 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: userfaultfd: gate must_wait writability check on pte_present() userfaultfd_must_wait() and userfaultfd_huge_must_wait() read the PTE without taking the page table lock and then apply pte_write() / huge_pte_write() to it. Those accessors decode bits from the present encoding only; on a swap or migration entry they read the offset bits that happen to share the same position and return an undefined result. The intent of the check is "is this fault still WP-blocked?". A non-marker swap entry means the page is in transit -- the userfault context the original fault delivered against is no longer the same, and the swap-in or migration completion path will re-deliver a fresh fault if userspace still needs to handle it. Worst case under the current code the garbage write bit says "wait", and the thread stays asleep until a UFFDIO_WAKE that may never arrive. Gate the writability check on pte_present() so the lockless re-check only inspects present-PTE bits when the entry is actually present. The non-present, non-marker case returns "don't wait" and lets the fault path retry.

📍 영향받는 시스템

userfaultfd 기능을 사용하는 Linux Kernel (패치 적용 전 버전)

⚔️ 공격 벡터

로컬 사용자가 특수하게 조작된 메모리 페이지 폴트 상황을 유도하여 커널 스레드를 무한 대기 상태로 유도

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel