🇰🇷 한글 설명
Linux 커널의 powerpc/perf 구성 요소에서 'vpa_pmu' PMU의 참조 횟수(ref-counting) 관리 오류가 발견되었습니다. 이로 인해 perf-events가 활성화된 상태에서 해당 모듈이 언로드될 경우, 커널의 NULL 포인터 역참조로 인해 시스템이 중단되거나 패닉(Kernel Panic)이 발생할 수 있습니다.
💡 쉬운 설명
특정 하드웨어 성능 측정 도구가 사용 중인데 해당 기능을 담당하는 프로그램이 갑자기 종료될 수 있는 문제입니다. 이 경우 컴퓨터 시스템이 갑자기 멈추거나 완전히 꺼지는 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
powerpc/perf: Fix ref-counting on the PMU 'vpa_pmu'
Commit 176cda0619b6 ("powerpc/perf: Add perf interface to expose vpa
counters") introduced 'vpa_pmu' to expose Book3s-HV nested APIv2 provided
L1<->L2 context switch latency counters to L1 user-space via
perf-events. However the newly introduced PMU named 'vpa_pmu' doesn't
assign ownership of the PMU to the module 'vpa_pmu'. Consequently the
module 'vpa_pmu' can be unloaded while one of the perf-events are still
active, which can lead to kernel oops and panic of the form below on a
Pseries-LPAR:
BUG: Kernel NULL pointer dereference on read at 0x00000058
<snip>
NIP [c000000000506cb8] event_sched_out+0x40/0x258
LR [c00000000050e8a4] __perf_remove_from_context+0x7c/0x2b0
Call Trace:
[c00000025fc3fc30] [c00000025f8457a8] 0xc00000025f8457a8 (unreliable)
[c00000025fc3fc80] [fffffffffffffee0] 0xfffffffffffffee0
[c00000025fc3fcd0] [c000000000501e70] event_function+0xa8/0x120
<snip>
Kernel panic - not syncing: Aiee, killing interrupt handler!
Fix this by adding the module ownership to 'vpa_pmu' so that the module
'vpa_pmu' is ref-counted and prevented from being unloaded when perf-events
are initialized.
📍 영향받는 시스템
Linux kernel (powerpc architecture, specifically Pseries-LPAR environments)
⚔️ 공격 벡터
로컬 공격자가 특정 조건에서 모듈 언로드를 유도하여 시스템 가용성을 침해하는 DoS(서비스 거부) 공격 가능
🛡️ 대응 방법
커널 패치를 적용하여 'vpa_pmu'에 모듈 소유권을 할당하고 참조 횟수 관리를 정상화해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 커밋(176cda0619b 이후)이 포함된 버전인지 확인