
CVE-2015-3456과 관련된 실험들
다음이 있습니다:
exploit/는 "익스플로잇"입니다 (단순히 QEMU를 크래시시킵니다).mock/에는 축소된 QEMU 버전이 포함되어 있습니다. 취약점만 남아 있습니다.patch/에는 실행 중인 QEMU 인스턴스를 패치하는 프로그램이 포함되어 있습니다. 핵심은 디버그 심볼이나 디스크 상의 원래 실행 파일이 필요 없다는 점입니다. 따라서 이 프로그램이 예상대로 작동하려면 일부 정보를 제공해야 합니다.모든 라이브 패치의 주요 아이디어는 command_to_handler 배열을 수정하여 각 명령이 "구현되지 않음" 함수를 가리키도록 하는 것입니다. 프로세스가 ptrace에 의해 부분적으로 중단되는 동안(주 스레드만), 이는 취약점을 수정하는 안전한 방법으로 보입니다 (더 이상 플로피 컨트롤러가 작동하지 않아도 상관없다면).
이러한 패치가 작동하는 이유는 command_to_handler가 정적 초기화되지 않은 변수이므로 쓰기 가능한 BSS 세그먼트에 위치하기 때문입니다. 또한 PIE를 제외하면 이 세그먼트의 메모리 내 위치는 컴파일 시점에 알려져 있습니다. 불행히도 QEMU는 일반적으로 PIE로 컴파일되므로 그렇지 않습니다.
물론, 사용에 따른 위험은 감수하세요: 실행 중인 프로세스를 수정하면 세상에 큰 혼란을 초래할 수 있습니다!
자세한 정보는 여기에서 확인할 수 있습니다: http://vincent.bernat.im/en/blog/2015-hotfix-qemu-venom.html
라이브 패치를 더 잘 이해하려면 다음 링크를 참조하세요: