OS KVM 취약점이 나왔습니다. CVE-2026-53359 에 대해 알아보겠습니다.
페이지 정보
작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 53회 좋아요 1회 작성일 26-07-11 23:33본문
안녕하세요 여러분
최근에 KVM 취약점인 "CVE-2026-53359" 가 나왔습니다.
. https://access.redhat.com/security/cve/cve-2026-53359
> 설명
리눅스 커널의 KVM(Kernel-Based Virtual Machine) x86 섀도우 페이징 메커니즘에서 취약점이 발견되었습니다.
이 취약점은 게스트 운영 체제 내에서 호스트 페이지 디렉터리 항목(PDE) 매핑이 변경될 때 발생하며, 섀도우 페이징에서 예기치 않은 역할 불일치를 초래합니다.
이러한 불일치는 시스템이 이미 해제된 메모리에 접근하려고 시도하는 '사용 후 해제(use-after-free)' 상태를 유발할 수 있습니다. 이는 시스템 불안정, 서비스 거부(DoS), 임의 코드 실행 또는 게스트에서 호스트로의 탈출로 이어질 수 있습니다.
현재 많은 사이트에서 단독 가상화로 KVM을 간혹 사용하는 것을 볼수가 있었습니다. 그러기에 이 문제를 대응해야한다고생각합니다.
현재 사용하는 모든 버전에 영향이 있다고 봐도 됩니다~~
그럼 해결 방법 및 워크어라운드가 있는지 보겠습니다.
1) 워크 어라운드
이 취약점은 중첩 가상화를 비활성화하여 완화할 수 있습니다. `/etc/modprobe.d/` 디렉터리에 `cve-2026-53359-mitigation.conf`와 같이 설명적인 이름의 파일을 생성하십시오. 해당 파일에서 `kvm_intel` 및 `kvm_amd` 커널 모듈에 대한 중첩 가상화를 비활성화하십시오.
------------------------------------------
options kvm-intel nested=0
options kvm-amd nested=0
------------------------------------------
`lsmod` 명령어를 사용하여 해당 모듈이 이미 로드되었는지 확인하십시오. 로드된 경우 `modprobe -r` 명령어를 사용하여 로드된 모듈을 제거하십시오. 중첩 가상화가 비활성화되었는지 확인하려면 `/sys/module/kvm_intel/parameters/nested` 및 `/sys/module/kvm_amd/parameters/nested` 파일을 읽으십시오. 이러한 모듈이 로드된 경우 해당 파일에는 기능이 비활성화되었음을 나타내는 `N`이 표시되어야 합니다.
2) 패치 관련
- RHEL 10 : https://access.redhat.com/errata/RHSA-2026:36956
. kernel-6.12.0-211.32.1.el10_2.x86_64.rpm 으로 업데이트
. 마이너버전들도 위 상세 페이지를 보시면 안내되어있습니다.
- RHEL 9: https://access.redhat.com/errata/RHSA-2026:36957
. kernel-5.14.0-687.24.1.el9_8.x86_64.rpm 으로 업데이트
. . 마이너버전들도 위 상세 페이지를 보시면 안내되어있습니다.
- RHEL8 : 아직 패키지가 안나온상태입니다.
그럼여기서 궁금한게 정말 이 문제가 발생될까 걱정이나, 의심이 되시는 분들은 테스트를 해보면 될듯합니다.
꼭, 개발 서버나 테스트 서버에서 진행 하시길 바랍니다.
https://github.com/V4bel/Januscape 사이트에 들어가보니 테스트설명이 나와있었습니다.
게스트 VM 내에서 PoC를 실행하면 호스트 커널 패닉이 발생할 수 있습니다. 통제된 환경에서 작동하는 완전한 탈출 익스플로잇도 존재하지만, 현재는 공개되지 않았으며 아주 먼 미래에 공개될 예정입니다.
RHEL과 같은 배포판에서는 /dev/kvm모든 사용자가 쓰기 권한을 가지므로( 0666), 권한이 없는 사용자도 이 취약점을 이용하여 루트 권한으로 진입하는 안정적인 LPE(Local Per Execution)를 만들 수 있습니다. 하지만 그렇게 하는 것은 쓸모없는 것에 돈을 지불하는 것과 같으므로 굳이 다루지는 않겠습니다.
- 게스트 VM 내부에서 헤더 파일을 설치하고 모듈을 빌드합니다.
# sudo apt-get install -y build-essential linux-headers-$(uname -r)
# make
- 게스트 OS 내부에 모듈을 로드합니다. KVM은 VMX/SVM의 원시 상태를 보유하고 있으므로 먼저 언로드해야 합니다. Intel 시스템에서는 인자 없이 로드하고, AMD 시스템에서는 amd=1을 사용하여 로드합니다.
[Intel]
# sudo rmmod kvm_intel; sudo insmod poc.ko
[AMD]
# sudo rmmod kvm_amd; sudo insmod poc.ko amd=1
- 경주가 시작되고, 몇 초에서 몇 분 안에 진행자 KVM은 공황 상태에 빠집니다.
[*] poc step 4/4: race live -- host DoS triggering
...
kernel BUG at arch/x86/kvm/mmu/mmu.c (pte_list_remove)
Comm: qemu-kvm
본 개념 증명(PoC)은 정확한 정보를 제공하기 위한 것입니다. 테스트 권한이 없는 시스템에서는 사용하지 마십시오.
운영자 분들은 어서어서 보완을 하시길 바랍니다.
긴글 읽어주셔서 감사합니다.
댓글목록
등록된 댓글이 없습니다.


Top