🇰🇷 한글 설명
Linux 커널의 arm64/boot 구성 중 PMZR_EL0 쓰기 동작에 대한 EL2 트랩 설정 오류가 발견되었습니다. 특정 조건에서 EL0의 쓰기 동작이 하이퍼바이저(EL2)로 전달될 때 핸들러가 없어 시스템이 중단(BUG)되는 취약점입니다.
💡 쉬운 설명
컴퓨터의 특정 하드웨어 설정 오류로 인해, 일반 사용자가 특정 동작을 수행하면 운영체제의 핵심인 커널이 갑자기 멈추거나 꺼질 수 있는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
arm64/boot: Disable trapping of PMZR_EL0 writes to EL2
__init_el2_fgt2() writes one mask to both HDFGRTR2_EL2 and HDFGWTR2_EL2.
PMZR_EL0 is write-only, so its trap bit, nPMZR_EL0, exists only in
HDFGWTR2_EL2 and is therefore never set: a PMZR_EL0 write from the host
traps to EL2, where the nVHE hypervisor has no handler and BUG()s. The
kernel never writes PMZR_EL0, but kernel.perf_user_access=1 has the PMU
driver set PMUSERENR_EL0.UEN for a task with a user-read event, so a
write from EL0 reaches the trap and takes the host down without a panic
message.
Accumulate the HDFGWTR2_EL2 bits separately, as __init_el2_fgt() already
does for HDFGWTR_EL2, and set nPMZR_EL0 with the other FEAT_PMUv3p9
bits.
📍 영향받는 시스템
arm64 아키텍처를 사용하는 Linux 커널 (PMUv3p9 기능 관련)
⚔️ 공격 벡터
kernel.perf_user_access=1 설정이 활성화된 상태에서 EL0(사용자 모드)로부터의 특정 PMU 쓰기 동작 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 HDFGWTR2_EL2 마스크 설정 오류를 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.