🔍 CVE-2024-53196

5.5
CVSS Score
MEDIUM
2024-12-27
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 KVM arm64 구현에서, 게스트가 지원되지 않는 MMIO 접근으로 동기식 외부 abort를 받은 상태임에도 KVM이 MMIO 명령을 완료(PC 진행)처리하던 문제를 수정했습니다. 이로 인해 사용자 공간에서 커널 WARN이 쉽게 유발될 수 있었습니다. 수정은 동기 예외가 보류 중이면 MMIO 에뮬레이션을 건너뛰도록 합니다.

💡 쉬운 설명

가상머신이 존재하지 않는 장치에 접근했을 때 오류 처리가 잘못되어 커널 경고가 발생할 수 있었습니다. 이번 수정으로 오류 상황에서는 명령을 잘못 완료 처리하지 않도록 바로잡았습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Don't retire aborted MMIO instruction Returning an abort to the guest for an unsupported MMIO access is a documented feature of the KVM UAPI. Nevertheless, it's clear that this plumbing has seen limited testing, since userspace can trivially cause a WARN in the MMIO return: WARNING: CPU: 0 PID: 30558 at arch/arm64/include/asm/kvm_emulate.h:536 kvm_handle_mmio_return+0x46c/0x5c4 arch/arm64/include/asm/kvm_emulate.h:536 Call trace: kvm_handle_mmio_return+0x46c/0x5c4 arch/arm64/include/asm/kvm_emulate.h:536 kvm_arch_vcpu_ioctl_run+0x98/0x15b4 arch/arm64/kvm/arm.c:1133 kvm_vcpu_ioctl+0x75c/0xa78 virt/kvm/kvm_main.c:4487 __do_sys_ioctl fs/ioctl.c:51 [inline] __se_sys_ioctl fs/ioctl.c:893 [inline] __arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:893 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49 el0_svc_common+0x1e0/0x23c arch/arm64/kernel/syscall.c:132 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151 el0_svc+0x38/0x68 arch/arm64/kernel/entry-common.c:712 el0t_64_sync_handler+0x90/0xfc arch/arm64/kernel/entry-common.c:730 el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598 The splat is complaining that KVM is advancing PC while an exception is pending, i.e. that KVM is retiring the MMIO instruction despite a pending synchronous external abort. Womp womp. Fix the glaring UAPI bug by skipping over all the MMIO emulation in case there is a pending synchronous exception. Note that while userspace is capable of pending an asynchronous exception (SError, IRQ, or FIQ), it is still safe to retire the MMIO instruction in this case as (1) they are by definition asynchronous, and (2) KVM relies on hardware support for pending/delivering these exceptions instead of the software state machine for advancing PC.

📍 영향받는 시스템

패치 이전의 Linux 커널 (KVM arm64 지원, ARM64 호스트에서 KVM을 사용하는 환경)

⚔️ 공격 벡터

KVM 사용자 공간 프로세스가 지원되지 않는 MMIO 접근을 유발하여 커널 WARN을 발생시키는 방식으로 서비스 거부 수준의 영향을 줄 수 있습니다.

🛡️ 대응 방법

배포판 제공 최신 커널 업데이트를 적용하거나 해당 upstream 수정이 포함된 커널로 재부팅합니다.

🔧 검증 코드

현재 실행 중인 커널 버전과 설치된 커널 패키지 정보를 확인하여, 배포판 보안 공지에서 CVE-2024-53196 수정이 포함된 버전인지 비교합니다. 해당 버전보다 새로우면 패치된 것으로 판단합니다.

Shell / Script
uname -r && (dpkg -l linux-image-$(uname -r) 2>/dev/null | grep -E '^ii' || rpm -q kernel 2>/dev/null)

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel