티스토리 뷰

내용
  • Microsoft Internet Explorer 7부터 10까지, 공격자가 조작된 웹 페이지를 이용하여 서비스 거부 공격 (memory corruption) 또는 원격 코드 실행을 할 수 있습니다. (aka "Internet Explorer Memory Corruption Vulnerability), CVE-2013-3146과는 다른 취약점
Information
References
추가사항
  • Metasploit의 코드는 Win XP SP3과 Win 7의 IE 8에서 실험되었습니다.
  • StackPivot and ROP are used in this PoC

IE 8 기본 모드에서 논리적이지 않은 table tree를 최초에 생성할 경우 use-after-free 조건을 발생시킬 수 있습니다. 해당 table tree는 CTableRow 다음에 CPhraseElement가 호출되며 마지막 Node가 하위 Table Element로 되어있습니다. CPhraseElement의 outer content가 이벤트 핸들러를 통해 outerText 또는 outerHTML에 의해 초기화 될 경우, 해당 자식 element를 Free 합니다. (이 경우, CAnchorElement지만 다른 Object 역시 해당 될 수 있습니다.) 하지만 참조자는 지속적으로 SRunPointer::SpanQualifier 함수를 참조하고 있습니다. 이 함수는 유효하지 않은 Reference 다음 함수로 전달 할 것이고, 결국 mshtml!CElement::Doc에서 실행 될 것입니다. mshtml!CElement::Doc는 오프셋 +0x70에서 object의 SecurityContext 가상 함수 호출을 시도할 것이고 , 이것은 Crash를 유발시킵니다. 공격자는 첫 번째 생성된 CAnchorElement 오브젝트에 의해 기회를 잡고 해당 오브젝트가 Free되도록 둡니다. 그리고 Free된 메모리에 가짜 오브젝트로 변경합니다. 성공 시, 공격자는 유저 Context에서 임의의 코드를 실행 시킬 수 있습니다.








댓글