[하루한줄] CVE-2021-31727/31728: MalwareFox AntiMalware 로컬 권한상승 취약점

URL

CVE-2021-31728

Target

  • MalwareFox AntiMalware 2.74.0.150

Explain

안티 멀웨어 소프트웨어인 MalwareFox에서 발견된 로컬 권한 상승 취약점의 세부 정보 및 PoC가 공개되었습니다. 공개된 취약점은 두 가지로, 모두 MalwareFox의 zam64.syszam32.sys 드라이버에 존재합니다.

CVE-2021-31727

zam64.sys/zam32.sys 드라이버의 IOCTL 0x800020140x80002018 은 unrestricted disk read/write가 가능합니다. 해커는 이를 악용해 부트 섹터를 덮어쓰거나 메모리 상의 코드를 덮어쓰는 방식으로 권한 상승을 트리거할 수 있습니다.

CVE-2021-31728

IOCTL 0x80002040은 UserBuffer에서 복사되는 대상 버퍼인 NonPagedPool에서 커널 메모리가 할당되며 입력 버퍼가 0x1000 bytes보다 커 쉘코드에 사용될 수 있습니다. IOCTL 0x80002018 은 miniport 드라이버의 IRP_MJ_SCSI_HANDLER에 대한 함수를 설정할 수 있으며 사용자 입력에 의해 지정된 드라이버에 SCSI 요청을 보내 이를 이용해 쉘코드를 실행할 수 있습니다.

위 취약점을 악용하면 아래 방법으로 드라이버 컨텍스트의 ring0 코드를 실행해 시스템 권한으로 프로세스를 실행 가능합니다.

  1. IOCTL 0x80002010으로 \.\ZemanaAntiMalware 에 대한 핸들을 가져옴
  2. IOCTL 0x80002040으로 NonPagedPool에 커널 메모리 할당
  3. SystemBigPoolInformation로 할당된 커널 메모리 검색
  4. IOCTL 0x80002044로 miniport 드라이버 구성
  5. IOCTL 0x80002014 또는 0x80002018로 해커가 정의한 miniport 드라이버 실행