🇰🇷 한글 설명
Linux 커널의 mm/page_alloc 구성 요소에서 NMI(Non-Maskable Interrupt) 컨텍스트 내 UP(Uniprocessor) 환경에서 spin_trylock()을 부적절하게 사용하는 취약점이 발견되었습니다. 이로 인해 BPF 프로그램을 사용하는 시스템에서 커널 충돌이 발생할 수 있으며, 로컬 공격자에 의한 권한 상승 공격으로 이어질 가능성이 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스 커널에서 특정 상황에 시스템을 제어하는 방식에 오류가 있어 시스템이 멈출 수 있습니다. 해커가 이 허점을 이용하면 일반 사용자 권한에서 관리자 권한을 뺏을 수도 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/page_alloc: don't spin_trylock() in NMI on UP
Patch series "mm/page_alloc: fixes for free_pages_nolock() on RT/UP".
Pre-existing bugs found by Sashiko during review of this other series:
https://lore.kernel.org/all/
[email protected]/
I have not reproduced these bugs, and I suspect there is no real-world
user that is affected by them.
This patch (of 2):
As noted in can_spin_trylock(), using this is unsafe in this context.
commit 620b46ed6ae17 ("mm/page_alloc: return NULL early from
alloc_frozen_pages_nolock() in NMI on UP") fixed this on the alloc side
but missed the free side.
Impact: If BPF programs using these features in NMI (probably tracing) are
present on non-SMP builds this might crash the kernel and is probably
exploitable by local attackers for privilege escalation.
📍 영향받는 시스템
NMI를 사용하는 BPF 프로그램을 실행하는 비-SMP(UP) 구성의 Linux 커널
⚔️ 공격 벡터
로컬 공격자가 특수하게 제작된 BPF 프로그램을 실행하여 커널의 메모리 할당/해제 로직을 트리거함
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 패치(mm/page_alloc 관련 패치 시리즈)를 적용하여 커널을 업데이트해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 배포판의 보안 공지(Security Advisory)와 대조하여 확인합니다.