마이크로소프트에서 오늘 긴급 패치를 2개 배포했습니다. 이 중 하나는 ATL 원격 코드 실행이 가능한 취약점을 수정하는 업데이트로서 개발자들을 대상으로 하고 있으므로, 반드시 패치 후 이 문서에 나온 ATL 개발 가이드라인을 코드에 반영하시기 바랍니다.

MS09-035 (중요) - 비주얼 스튜디오 ATL의 원격 코드 실행 취약점

비주얼 스튜디오와 ATL을 이용하여 컴포넌트와 컨트롤을 개발하고 있는 개발자들은 반드시 업데이트를 설치하고 제공되는 가이드라인을 따르셔야 합니다. 취약한 버전의 ATL을 이용하여 개발된 모든 컴포넌트나 컨트롤들은 원격 코드 실행 취약점을 노출하게 될 수 있습니다. 이 업데이트는 ATL 헤더를 수정하여 데이터 스트림을 안전하게 초기화하도록 합니다. 따라서 기존에 ATL을 사용하여 개발한 제품이 있다면 업데이트 후 제품을 다시 컴파일하여 배포하셔야 합니다.

  • ATL 초기화되지 않은 객체 취약점 (CVE-2009-0901)
    ATL 헤더 코드의 문제로 인해 공격자가 올바르게 초기화되지 않은 VARIANT 변수를 대상으로 VariantClear 함수를 호출하도록 만들 수 있습니다. 공격자는 조작된 스트림 데이터를 집어넣고 VariantClear가 호출된 후 에러를 처리하는 부분을 제어할 수 있습니다. 이번 업데이트는 VariantClear 함수가 초기화된 VARIANT만 처리하도록 수정합니다.
  • ATL COM 초기화 취약점 (CVE-2009-2493)
    ATL 헤더에서 데이터 스트림에서 객체의 핸들을 초기화하는 코드에 문제가 있습니다. OleLoadFromStream 함수를 안전하지 않은 방식으로 사용하는 경우 보안 정책을 우회하여 임의의 객체를 생성할 수 있게 됩니다. (인터넷 익스플로러에서 Kill bit 우회 등)
  • ATL 널 문자열 취약점 (CVE-2009-2495)
    ATL이 널 문자로 끝나지 않는 문자열도 읽도록 되어있어 정보유출이 발생할 수 있는 취약점을 가지고 있습니다. 공격자는 널 문자로 끝나지 않는 문자열을 입력시켜 문자열 끝 이후의 메모리 정보들을 얻어낼 수 있습니다. 공격자는 메모리에서 암호나 신용카드 번호 등 중요한 정보를 얻어내고 이후 공격을 이어갈 수 있습니다.

MS09-034 (심각) - 인터넷 익스플로러 누적 보안 업데이트

개발자들은 위의 ATL 업데이트를 받아서 바이너리를 새로 배포할 책임이 있지만, 사용자는 이러한 취약한 서드파티 제품들이 패치가 안 된 경우에도 보호를 받아야 합니다. 이번 인터넷 익스플로러 보안 업데이트는 취약한 ATL 버전으로 개발된 컴포넌트나 컨트롤을 공격하는 경로를 차단합니다. 그 외에 비공개적인 통로로 보고된 일부 원격 코드 실행 취약점을 패치합니다.

  • 메모리 오염 취약점 (CVE-2009-1917)
    인터넷 익스플로러가 이미 삭제된 객체를 접근하려고 시도하면서 원격 코드 실행 취약점이 발생합니다.
  • HTML 개체 메모리 오염 취약점 (CVE-2009-1918)
    인터넷 익스플로러가 특정한 상황에서 테이블을 처리하는 경우 메모리가 오염되고 공격자가 임의의 코드를 실행할 수 있게 됩니다.
  • 초기화되지 않은 메모리 오염 취약점 (CVE-2009-1919)
    인터넷 익스플로러가 이미 삭제된 객체에 접근하려고 시도하면서 원격 코드 실행 취약점이 발생합니다.