🔍 CVE-2026-53162

7.8
CVSS Score
HIGH
2026-06-25
2026-07-06 16:42
✅ 완료

🇰🇷 한글 설명

Linux 커널의 memcg(메모리 제어 그룹)에서 NMI(Non-Maskable Interrupt) 컨텍스트 내에서 난수 생성 함수를 호출할 때 발생하는 경합 조건 취약점입니다. 난수 생성 과정에서 사용하는 per-cpu 락이 NMI 재진입 시 보호되지 않아 상태 데이터가 손상될 수 있습니다.

💡 쉬운 설명

컴퓨터가 아주 중요한 작업을 처리하는 도중에 갑작스러운 신호(NMI)가 들어오면, 난수를 만드는 과정에서 데이터가 꼬여 시스템 오류가 발생할 수 있는 문제입니다. 이를 해결하기 위해 복잡한 난수 대신 단순한 순차 방식을 사용하도록 수정되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: memcg: use round-robin victim selection in refill_stock Harry Yoo reported that get_random_u32_below() is not safe to call in the nmi context and memcg charge draining can happen in nmi context. More specifically get_random_u32_below() is neither reentrant- nor NMI-safe: it acquires a per-cpu local_lock via local_lock_irqsave() on the batched_entropy_u32 state. An NMI that lands on a CPU mid-update of the ChaCha batch state and recurses into the random subsystem would corrupt that state. The memcg_stock local_trylock prevents re-entry on the percpu stock itself, but cannot protect an unrelated subsystem's per-cpu lock. Replace the random pick with a per-cpu round-robin counter stored in memcg_stock_pcp and serialized by the same local_trylock that already guards cached[] and nr_pages[]. No atomics, no random calls, no extra locks needed.

📍 영향받는 시스템

Linux Kernel (memcg 관련 기능이 활성화된 버전)

⚔️ 공격 벡터

NMI 컨텍스트에서 memcg의 메모리 해제(charge draining)를 유발하여 커널 상태를 손상시키는 방식

🛡️ 대응 방법

난수 기반 선택 방식 대신 per-cpu round-robin 카운터를 사용하는 최신 커널 패치 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전인지 배포판 보안 공지를 통해 확인하십시오.

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