🔍 CVE-2026-23100

5.5
CVSS Score
MEDIUM
2026-02-04
2026-10-15 02:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 mm/hugetlb 구성 요소에서 hugetlb_pmd_shared() 함수가 공유된 PMD 테이블을 제대로 감지하지 못하는 취약점이 발견되었습니다. 이로 인해 페이지 마이그레이션 시 독점적이지 않은 폴리오가 마이그레이션되거나, smaps 및 pagemap 인터페이스에서 공유된 페이지를 개인용으로 잘못 보고하는 문제가 발생할 수 있습니다.

💡 쉬운 설명

컴퓨터 메모리를 관리하는 리눅스 커널에서 여러 프로그램이 함께 쓰는 메모리 영역을 '혼자 쓰는 것'으로 착각하는 오류가 있었습니다. 이로 인해 메모리 관리 정보가 실제와 다르게 표시되거나 데이터 이동 과정에서 오류가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: mm/hugetlb: fix hugetlb_pmd_shared() Patch series "mm/hugetlb: fixes for PMD table sharing (incl. using mmu_gather)", v3. One functional fix, one performance regression fix, and two related comment fixes. I cleaned up my prototype I recently shared [1] for the performance fix, deferring most of the cleanups I had in the prototype to a later point. While doing that I identified the other things. The goal of this patch set is to be backported to stable trees "fairly" easily. At least patch #1 and #4. Patch #1 fixes hugetlb_pmd_shared() not detecting any sharing Patch #2 + #3 are simple comment fixes that patch #4 interacts with. Patch #4 is a fix for the reported performance regression due to excessive IPI broadcasts during fork()+exit(). The last patch is all about TLB flushes, IPIs and mmu_gather. Read: complicated There are plenty of cleanups in the future to be had + one reasonable optimization on x86. But that's all out of scope for this series. Runtime tested, with a focus on fixing the performance regression using the original reproducer [2] on x86. This patch (of 4): We switched from (wrongly) using the page count to an independent shared count. Now, shared page tables have a refcount of 1 (excluding speculative references) and instead use ptdesc->pt_share_count to identify sharing. We didn't convert hugetlb_pmd_shared(), so right now, we would never detect a shared PMD table as such, because sharing/unsharing no longer touches the refcount of a PMD table. Page migration, like mbind() or migrate_pages() would allow for migrating folios mapped into such shared PMD tables, even though the folios are not exclusive. In smaps we would account them as "private" although they are "shared", and we would be wrongly setting the PM_MMAP_EXCLUSIVE in the pagemap interface. Fix it by properly using ptdesc_pmd_is_shared() in hugetlb_pmd_shared().

📍 영향받는 시스템

Linux Kernel (hugetlb 관련 모듈을 사용하는 시스템)

⚔️ 공격 벡터

로컬 공격자가 메모리 관리 메커니즘의 논리적 오류를 이용하여 잘못된 메모리 상태를 유도하거나 정보를 오인하게 함

🛡️ 대응 방법

hugetlb_pmd_shared() 함수가 ptdesc_pmd_is_shared()를 올바르게 사용하도록 수정된 최신 커널 패치를 적용하십시오.

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전이 적용되었는지 확인합니다.

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