
MSI Dragon Center의 MODAPI.sys 드라이버에 대한 로컬 권한 상승 익스플로잇으로, 인증되지 않은 MSR 쓰기를 악용하여 SMEP를 우회하고 SYSTEM 권한을 획득합니다.
해커 여러분.
이것은 MSI Dragon Center 2.0.155.0이 설치하는 커널 드라이버인 MODAPI.sys 내부의 인증되지 않은 MSR 쓰기입니다. 이 드라이버는 모든 로컬 사용자가 관리자 권한이나 UAC 없이 열 수 있는 보안 설명자를 가진 장치 객체를 노출합니다. 핸들을 얻고 나면 MSR 인덱스에 대한 화이트리스트가 없으므로 원하는 MSR을 읽고 쓸 수 있습니다.
읽기 측면만으로도 이미 KASLR을 깨뜨립니다. IA32_LSTAR(0xC0000082)를 읽으면 드라이버가 ntoskrnl!KiSystemCall64를 공짜로 넘겨줍니다. 쓰기 측면이 진짜 문제입니다. IA32_LSTAR는 syscall 시 CPU가 점프하는 주소이며, 드라이버는 일반 사용자가 이를 덮어쓸 수 있게 해줍니다. 이를 제어하는 코드를 가리키면 다음 syscall이 CPL0에서 해당 코드를 실행합니다. SMEP만이 유일한 장애물이므로, 익스플로잇은 먼저 IA32_LSTAR를 읽어 ntoskrnl을 찾고, 디스크에서 이미지를 파싱하고, mov cr4, rax로 SMEP을 해제할 가젯 몇 개를 찾고, SYSTEM 토큰을 현재 프로세스에 복사하는 작은 셸코드를 실행하고, 나가는 길에 IA32_LSTAR를 복원하여 머신이 계속 작동하도록 합니다.
저는 표준 사용자 계정에서 Windows 10 x64 22H2(빌드 19045.6456)에서 이것을 테스트했습니다. 레이스도 힙 그루밍도 없으며, 실행할 때마다 매번 작동했습니다. 이 드라이버는 MSI 머신의 Dragon Center와 함께 제공되므로 이미 많은 시스템에 로드되어 있습니다. gcc -O2 -o poc.exe poc.c -lpsapi로 빌드하고 일반 사용자로 실행하세요. 2026-06-21에 MSI에 보고되었으며 수정이 검증되었습니다.
11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5 MODAPI.sys
