
CVE-2018-8060/8061용 간단한 IOCTL 디스패처
설명:
HWiNFO AMD64 커널 드라이버 버전 8.98 이하에서는 권한이 없는 사용자가 IOCTL을 디바이스 드라이버에 보낼 수 있습니다. 입력 및/또는 출력 버퍼 포인터가 null이거나 이러한 버퍼의 데이터가 유효하지 않은 경우 null/유효하지 않은 포인터가 발생하여 Windows 커널 패닉, 일명 블루 스크린이 발생합니다.
PoC:
권한이 없는 사용자가 심볼릭 디바이스 "HWiNFO32"에 대해 0x85FE2600보다 큰 일부 IOCTL을 전송하며, 입력/출력 버퍼 데이터가 임의적일 때, 디바이스 드라이버 범위 내에서 포인터 역참조가 발생하여 커널 패닉을 유발합니다. 일부 경우 CWE-476 (NULL 포인터 역참조) 또는 CWE-781 (METHOD_NEITHER I/O 제어 코드를 사용한 IOCTL에서의 부적절한 주소 검증)이 발생합니다.
설명:
HWiNFO AMD64 커널 드라이버 버전 8.98 이하에서는 권한이 없는 사용자가 특수 IOCTL을 디바이스 드라이버에 보내어 직접 물리적 메모리 읽기 또는 쓰기를 수행할 수 있습니다.
PoC:
권한이 없는 사용자가 심볼릭 디바이스 "HWiNFO32"에 대해 특수 IOCTL(예: 0x85FE2608)을 전송하며, 입력 버퍼(사용자 공간)에 물리적 메모리 주소, 크기 및 가상 메모리 주소를 포함하면, 드라이버가 물리적 메모리를 매핑하고 읽어 그 내용을 가상 주소로 복사하게 됩니다.
8061.data 파일은 다음과 같은 형식으로 구성됩니다: