🔍 CVE-2026-31575

5.5
CVSS Score
MEDIUM
2026-04-24
2026-11-05 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 mm/userfaultfd 모듈에서 hugetlb 페이지 폴트 뮤텍스 해시 계산이 잘못되어, 같은 huge page 내 서로 다른 주소가 서로 다른 뮤텍스를 사용할 수 있습니다. 이로 인해 스레드 간 경쟁 조건이 발생하고 reservation map이 손상되어 resv_map_release()의 BUG_ON이 트리거될 수 있습니다. 해결을 위해 huge page 단위 인덱스를 계산하는 hugetlb_linear_page_index()가 도입되었습니다.

💡 쉬운 설명

큰 메모리 페이지를 관리하는 과정에서 같은 페이지를 서로 다른 잠금으로 처리하는 계산 오류가 있습니다. 이로 인해 여러 작업이 동시에 같은 영역을 건드려 시스템이 비정상 종료될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: mm/userfaultfd: fix hugetlb fault mutex hash calculation In mfill_atomic_hugetlb(), linear_page_index() is used to calculate the page index for hugetlb_fault_mutex_hash(). However, linear_page_index() returns the index in PAGE_SIZE units, while hugetlb_fault_mutex_hash() expects the index in huge page units. This mismatch means that different addresses within the same huge page can produce different hash values, leading to the use of different mutexes for the same huge page. This can cause races between faulting threads, which can corrupt the reservation map and trigger the BUG_ON in resv_map_release(). Fix this by introducing hugetlb_linear_page_index(), which returns the page index in huge page granularity, and using it in place of linear_page_index().

📍 영향받는 시스템

수정 이전의 Linux 커널 (hugetlb 및 userfaultfd를 사용하는 환경)

⚔️ 공격 벡터

로컬 사용자가 userfaultfd와 hugetlb 메모리를 이용해 경쟁 조건을 유발하여 커널 패닉 또는 서비스 거부를 일으킬 수 있습니다.

🛡️ 대응 방법

커널을 CVE-2026-31575 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅합니다.

🔧 검증 코드

출력된 커널 버전이 배포판의 CVE 수정 패치가 포함된 버전인지 벤더 보안 공지와 대조하고, HugePages 항목으로 hugetlb 사용 여부를 확인합니다.

Shell / Script
uname -r && (grep -i huge /proc/meminfo | head -5)

📊 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