🇰🇷 한글 설명
Linux 커널의 hugetlb 서브시스템에서 alloc_huge_page 함수가 hugetlb_lock 밖에서 h->resv_huge_pages 카운터를 감소시키는 경쟁 조건(race condition)이 발견되었습니다. 이로 인해 카운터 값이 손상될 수 있으며, 수정은 감소 연산 전에 hugetlb_lock을 획득하도록 하는 것입니다.
💡 쉬운 설명
Linux 커널이 큰 메모리 페이지를 관리하는 내부 숫자 값이 여러 작업이 동시에 접근할 때 잘못 계산될 수 있는 문제입니다. 이 숫자가 틀리면 시스템 메모리 관리가 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages
The h->*_huge_pages counters are protected by the hugetlb_lock, but
alloc_huge_page has a corner case where it can decrement the counter
outside of the lock.
This could lead to a corrupted value of h->resv_huge_pages, which we have
observed on our systems.
Take the hugetlb_lock before decrementing h->resv_huge_pages to avoid a
potential race.
📍 영향받는 시스템
Linux 커널을 사용하는 시스템 중 hugetlb 기능을 사용하는 버전 (수정 패치가 적용되지 않은 안정 커널 브랜치)
⚔️ 공격 벡터
로컬 사용자가 hugetlb 메모리 할당 작업을 동시에 유발하여 경쟁 조건을 일으키는 방식으로, 주로 시스템 안정성(오작동, 불안정)에 영향을 미칩니다.
🛡️ 대응 방법
배포판 제공 보안 업데이트 또는 해당 수정이 포함된 최신 Linux 커널로 업그레이드하세요.
🔧 검증 코드
출력된 커널 버전이 해당 CVE 수정이 포함된 배포판 업데이트 버전 이상인지 확인하고, /proc/meminfo의 HugePages 관련 값으로 hugetlb 기능 사용 여부를 확인합니다.
uname -r && (grep -i hugetlb /proc/meminfo 2>/dev/null | head -5)