먼저 Test Machine에 KB963027 를 설치 후 Test를 진행하신 후 전체 배포를 검토하여 주시기를 부탁 드립니다.

Test 진행 후 이상현상이 발생한다면 가능하다면 KB963027 의 배포를 일정기간 연기 후 코드의 수정이 필요합니다.

세부 대응책이 마련된 후 다시 공지하여 드리겠습니다.

 

KB 963027 / MS09-014

http://support.microsoft.com/kb/KB963027

http://www.microsoft.com/technet/security/bulletin/MS09-014.mspx

 

[보고된 증상]

mshtml.dll 에서 오류가 발생하고 Internet Explorer가 비정상 종료됨

 

[환경]

Internet Explorer 6 sp2 & Internet Explorer 7

 

[원인]

특정 ActiveX Control이 Unload될 때 이미 메모리에서 제거된 Object을 다시 Access하려고 시도하기 때문에 오류가 발생합니다.  MS09-014 이전에는 ActiveX가 Unload될 때 Object가 완전히 제거 되지 않고 남아 있었기 때문에 오류가 발생하지 않았습니다. MS09-014에서는 ActiveX가 Unload될 때 Object가 완전히 제거되도록 수정하였고 이로 인해 문제가 발생합니다.

 

[현상 발생 시 대처방법]

이 문제가 발생하지 않도록 하려면 해당 웹 사이트에서 소스 수정이 필요합니다. 일반 사용자께서는 임시로 MS09-014를 제거하고 사용하시기 바랍니다.

 

[사례]

보안업데이트 설치 전의 mshtml.dll 에서는 freed된 object 에 대해 제대로 처리하지 못하는 코드 상의 문제가 있어, 이러한 오류를 제대로 감지하지 못하여 비정상 종료 문제가 없었던 것입니다.

MS09-014 설치 전에는, object 가 freed(mshtml!CElement::~CElement) 되었음에도 불구하고  object 의 일부 content 가 null로 처리되지 않고 메모리에 남아 있어 이후 다시 이 부분을 double freed 하더라도 오류 없이 처리가 되었습니다만, 이로 인해 이미 freed되었음에도 불구하고 메모리에 남아있는 정보를 이용할 수 있는 보안상의 취약점을 안고 있었던 경우입니다.

MS09-014에서는 이러한 문제를 확인하고 보안 취약점을 없애기 위해 , object가 freed될 때 content 를 완전히 cleanup 하도록 코드 수정하였으며 그래서, 해당 컨트롤에서 이미 freed object를 다시 freed하려고 시도하면, double freed 로 인해 비정상 종료가 되게 됩니다.

이 문제를 해결키 위해서는, 해당 컨트롤에서 double freed하지 않도록 코드 수정이 필요합니다.

신고
Posted by hotpoto

티스토리 툴바