포스팅 내용

국내외 보안동향

리눅스 커널에서 아직 패치 되지 않은 DoS 취약점 두 개 발견

Linux Kernel is affected by two DoS vulnerabilities still unpatched


리눅스 커널에서 서비스 거부 취약점(DoS) 두 개가 발견 되었습니다. 이 이슈는 리눅스 커널 4.19.2 및 이전 버전에 영향을 미칩니다.


이 두 이슈 모두 심각도 ‘보통’으로 분류 되었으며, 로컬 공격자가 서비스 거부 상태를 유발시키기 위해 악용할 수 있는 NULL 포인터 역참조(dereference) 이슈입니다.


첫 번째 취약점은 CVE-2018-19406로 등록 되었으며, arch/x86/kvm/lapic.c에 구현 된 리눅스 커널 함수인 kvm_pv_send_ipi에 존재합니다.


“리눅스 커널 4.19.2및 이하 버전의 arch/x86/kvm/lapic.c에 존재하는 kvm_pv_send_ipi가 로컬 사용자들이 apic 맵이 초기화 되지 않는 상태에 도달하기 위해 특별히 제작 된 시스템 호출을 통해 서비스 거부 상태(NULL 포인터 역참조 및 버그)를 유발시키도록 허용합니다.”


“apic 맵이 초기화 되지 않는 원인은 테스트 케이스가 vmcall을 통해 pv_send_ipi 인터페이스를 트리거링해 kvm->arch.apic_map이 역참조 되기 때문입니다. 이 패치는 apic 맵이 NULL인지 아닌지 확인하고 해당 케이스일 경우 즉시 해결하는 방식으로 이 문제를 수정했습니다.”


두 번째 결점인 CVE-2018-19407은 arch/x86/kvm/x86.c에 정의 된 리눅스 커널 함수인 vcpu_scan_ioapic에 존재합니다.


이 결점은 I/O APIC(Advanced Programmable Interrupt Controller)가 적절히 초기화 되지 않았을 때 촉발 됩니다.


이 취약점은 로컬 공격자가 Ioapic이 초기화 되지 않은 상태에 도달하기 위해 특별히 제작한 시스템 호출을 사용하여 악용할 수 있습니다. 


“리눅스 커널 4.19.2 및 이전 버전의 arch/x86/kvm/x86.c 내 vcpu_scan_ioapic 함수가 로컬 사용자가 ioapic 맵이 초기화 되지 않는 상태에 도달하기 위해 특별히 제작 된 시스템 호출을 통해 서비스 거부 상태(NULL 포인터 역참조 및 버그)를 유발시키도록 허용합니다.”


“원인은 테스트케이스가 hyperv synic HV_X64_MSR_SINT6 msr를 쓰고 scan ioapic 로직을 트리거 하여 synic 벡터를 EOI exit bitmap으로 로드하기 때문입니다. 그러나 irqchip은 이 간단한 테스트케이스에서 초기화 되지 않으며 ioapic/apic 오브젝트에는 접근해서는 안됩니다.”


이 두 취약점의 비공식 패치는 비공식 LKML(리눅스 커널 메일링 리스트) 아카이브에 공개 되었으나, 아직까지 업스트림으로 푸시되지는 않았습니다.




출처 :

https://securityaffairs.co/wordpress/78434/breaking-news/linux-kernel-dos-flaws-2.html

https://lkml.org/lkml/2018/11/20/580

티스토리 방명록 작성
name password homepage