CVE-2020-0674
CVE-2020-0674는 레거시 jscript 엔진의 use-after-free 취약점입니다. Internet Explorer에서 트리거될 수 있습니다. 이 익스플로잇은 maxpl0it이 작성했지만, 취약점 자체는 Qihoo 360이 실제 환경에서 사용 중인 것을 발견했습니다. 이 익스플로잇은 단순히 계산기를 실행합니다.
익스플로잇 분석은 여기에서 확인할 수 있습니다.
취약점 개요
- 이 취약점은 비교자 함수를 사용할 때 Array
sort 함수에 존재합니다.
- 비교자 함수에 제공되는 두 인수는 가비지 컬렉터에서 추적되지 않으므로 GC가 호출된 후 해제된 메모리를 가리키게 됩니다.
익스플로잇 참고 사항
- 이 익스플로잇은 Windows 7용으로 특별히 작성되었지만, 큰 어려움 없이 포팅할 수 있을 것입니다.
- 이 익스플로잇은 IE의 x64 인스턴스를 대상으로 작성되었으므로, 다음 브라우저 구성에서 실행됩니다 (테스트 완료):
- IE 8 (x64 build)
- IE 9 (x64 build)
- IE 10 (향상된 보호 모드 활성화 또는 TabProcGrowth 활성화)
- IE 11 (향상된 보호 모드 활성화 또는 TabProcGrowth 활성화)
- 참고할 점은 Windows 7의 향상된 보호 모드는 단순히 브라우저 프로세스의 x64 버전을 활성화하므로 샌드박스 이스케이프라기보다는 추가 샌드박스가 없는 것입니다.
아이러니하게도 이 익스플로잇이 x64용이므로 EPM이 오히려 작동을 허용합니다.
- 이 익스플로잇은 EMET을 완전히 우회하도록 제작되지 않았습니다 (스택 피벗 감지 우회만 실제로 구현됨). 그러나 최종 버전(5.52)은 익스플로잇 실행 시 EAF+를 트리거하지 않는 반면 5.5는 트리거합니다 (적어도 Windows 7 x64에서는).
따라서 최대 EMET 설정이 활성화된 향상된 보호 모드의 IE 11에서 익스플로잇이 가능합니다.
- 익스플로잇에는 많은 주석이 있지만, 익스플로잇이 어떻게 작동하고 각 단계에서 무엇을 하는지 더 잘 이해하려면
var debug = false;를 var debug = true;로 변경하고 개발자 콘솔을 열어 로그를 보거나 콘솔을 닫은 상태에서 alert 팝업을 대신 확인하세요 (약간 성가실 수 있습니다).