🇰🇷 한글 설명
Linux 커널의 KVM arm64 vgic-its 구성 요소에서 발생하는 취약점으로, 특정 시퀀스의 MAPC(V=0) 명령 호출 시 NULL 컬렉션을 역참조하여 호스트 시스템의 커널 패닉(oops)을 유발할 수 있습니다. 가상 머신 마이그레이션 과정에서 ITT 저장 시 유효하지 않은 포인터를 참조하는 것이 원인입니다.
💡 쉬운 설명
가상 머신을 다른 서버로 옮길 때, 특정 명령을 받은 가상 머신이 잘못된 메모리 주소를 참조하게 만들어 서버 전체를 멈추게 할 수 있는 오류입니다. 공격자가 의도적으로 이 명령을 실행하면 호스트 컴퓨터가 갑자기 꺼지거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: vgic-its: Don't dereference a NULL collection on ITT save
MAPC with V=0 drops ite->collection but leaves the ITE on the device's
ITT list, and vgic_its_save_ite() dereferences it unconditionally. A
guest that issues MAPD, MAPTI and then MAPC(V=0) therefore oopses the
host when the VMM issues KVM_DEV_ARM_ITS_SAVE_TABLES to migrate it.
That sequence is UNPREDICTABLE per the architecture, but KVM already
handles the resulting state in the translate, MOVI and DISCARD paths.
Save a zeroed entry, which vgic_its_restore_ite() reads back as
invalid. Skipping the ITE instead would leave the ITT slot holding
whatever is in guest memory, and restore rejects an entry naming a
collection the restored collection table does not have.
📍 영향받는 시스템
Linux Kernel (KVM arm64 vgic-its 구성 요소 포함 버전)
⚔️ 공격 벡터
가상 머신(Guest) 내에서 특정 인터럽트 제어 명령(MAPD, MAPTI, MAPC(V=0))을 순차적으로 실행하여 호스트의 마이그레이션 프로세스를 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 vgic_its_save_ite() 함수의 NULL 역참조 문제를 해결해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인