🇰🇷 한글 설명
Linux 커널의 irqchip/gic-v4 드라이버에서, 호스트에 ITS(MSI 컨트롤러) 노드가 없는데도 vLPI를 활성화하면 gic_domain이 NULL인 상태로 접근하여 커널 패닉이 발생하는 문제입니다. 해당 시스템에서는 ITS가 없을 경우 init 시점에 vLPI 지원을 false로 설정하도록 수정되었습니다.
💡 쉬운 설명
GICv4 기능을 쓰는 리눅스 가상화 환경에서 필요한 장치가 없는데도 기능을 켜면 시스템이 멈추는 문제입니다. 필요한 장치가 있는지 먼저 확인하도록 고쳐졌습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
irqchip/gic-v4: Don't advertise VLPIs if no ITS is probed
When accidentally setting “kvm-arm.vgic_v4_enable=1” on a system that has
no MSI controller device tree node and GICv4, it results a panic as
“gic_domain” is NULL and the kernel attempts to access it.
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000028
Mem abort info:
ESR = 0x0000000096000006
CPU: 1 UID: 0 PID: 295 Comm: lkvm-static Not tainted 7.1.0-rc4-ge3f15ad3970e #5 PREEMPT
Hardware name: linux,dummy-virt (DT)
pstate: 81402005 (Nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
pc : __irq_domain_instantiate+0x1d4/0x578
lr : __irq_domain_instantiate+0x1cc/0x578
Set vLPI support to false at init time if the host has no ITS, so it
propagates properly to kvm_vgic_global_state.has_gicv4.
📍 영향받는 시스템
vLPI/GICv4를 사용하는 ARM64 Linux 커널 (수정 커밋 이전 버전, kvm-arm.vgic_v4_enable=1 설정 시 ITS 미탐지 호스트)
⚔️ 공격 벡터
로컬 관리자가 kvm-arm.vgic_v4_enable=1 등의 설정을 ITS가 없는 시스템에 적용하여 커널 패닉(서비스 거부)을 유발할 수 있음
🛡️ 대응 방법
패치된 Linux 커널 버전으로 업데이트하고, 배포판의 보안 업데이트를 적용하세요.
🔧 검증 코드
출력된 커널 버전이 해당 수정이 반영된 최신 배포판 커널 버전 이상인지 배포판 보안 공지와 대조하여 확인하세요.