[하루한줄] Crucial’s MOD Utility LPE – CVE-2021-41285
URL
https://voidsec.com/crucial-mod-utility-lpe-cve-2021-41285/
Target
- Crucial Ballistix MOD Utility
Explain
Crucial Ballistix MOD Utility의 MODAPI.sys
에서 권한 상승을 할 수 있는 취약점들이 공개되었습니다. 공개된 취약점들은 모두 IOCTL 요청을 통해 트리거할 수 있습니다.
- IO bus에 데이터 데이터 쓰기 혹은 읽어오기
0x9C406144: HalGetBusDataByOffset
0x9C40A148: HalSetBusDataByOffset
- IO bus에 데이터를 써서 PCI 설정 정보 혹은 벤더의 데이터 레지스터들을 수정할 수 있습니다.
- IO port에서 1/2/4 바이트 읽기 혹은 쓰기
0x9C40A0C8, 0x9C40A0D8 __outbyte, 0x9C40A0DC __outword, 0x9C40A0E0 __outdword
0x9C4060C4, 0x9C4060CC __inbyte, 0x9C4060D0 __inword, 0x9C4060D4 __indword
- HDD와 GPU 등 디바이스들과 직접적으로 통신할 수 있으며 디스크에 직접 쓰고 읽을 수 있습니다.
- 임의 물리주소 할당 및 유저 공간과 매핑
0x9C406104: MmMapIoSpace
- 램에 있는 물리주소를 유저 프로세스 메모리로 매핑시킬 수 있습니다. 이를 통해 메모리에서 바로 정보를 추출할 수 있습니다.
- MSR 쓰기
- Model-Specific Registers(MSRs)는 주로 CPU 정보를 가져오는데 사용됩니다. 이 중
MSR _LSTAR
은 유저모드에서 커널모드로 전환할 때 사용되는데, 이 때MSR _LSTAR
레지스터의 내용을 읽고 해당 주소로 call 합니다.MSR _LSTAR
를 조작할 수 있다면 실행 흐름을 조작할 수 있습니다. 0x9C402084: __readmsr
0x9C402088: __writemsr
- MSR을 읽고 쓸 수 있습니다.
- Model-Specific Registers(MSRs)는 주로 CPU 정보를 가져오는데 사용됩니다. 이 중
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.