[하루한줄] CVE-2021-31969: UNDERFLOWING IN THE CLOUDS
URL
CVE-2021-31969: UNDERFLOWING IN THE CLOUDS
Target
Windows Cloud Files Mini Filter Driver (cldflt.sys)
Explain
Windows Cloud Files Mini Filter Driver에서 발견된 integer underflow 취약점입니다. 해당 취약점을 통해 kernel buffer overflow를 발생 시켜 권한 상승 및 임의 코드 실행을 할 수 있습니다.
Windows의 Cloud Files API는 클라우드 동기화 엔진을 지원하고 placeholder 파일 및 디렉터리 생성과 관리 작업을 처리합니다. 동기화 엔진은 호스팅된 파일 및 디렉터리를 Windows 파일 시스템과 파일 탐색기를 통해 원격 호스트와 로컬 클라이언트 간에 파일을 동기화 하는 서비스 입니다. 해당 취약점은 placeholder 파일을 처리할 때 발생합니다.
함수 HsmFltProcessUpdatePlaceholder
는 다음과 같은 동작을 합니다.
HsmpRpReadBuffer
를 호출해 reparse point data를 검색HsmpRpiDecompressBuffer
를 호출해 length(Attacker-controled data) + 8 크기의 커널 버퍼 할당RtlDecompressBuffer
를 호출해 데이터 압축 해제, 전 단계에서 할당한 버퍼에 저장
문제는 버퍼 내에 metadata를 저장할 12 bytes 공간을 확보해야 하고, 따라서 함수 RtlDecompressBuffer
에 전달 되는 length 값은 (버퍼 크기-12)가 되므로 integer underflow 취약점이 발생합니다.
즉, 버퍼 크기가 8이되도록 유도한다면 length가 0xfffffff4
가 되고 버퍼 오버플로우와 커널 권한 임의 코드 실행을 할 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.