FIX:CRT 문자열 형식 함수가 버퍼를 벗어난 곳에 쓸 수 있다

Windows XP에 대한 지원이 종료되었습니다.

Microsoft는 2014년 4월 8일 Windows XP에 대한 지원을 종료했습니다. 이러한 변경에 따라 해당 소프트웨어 업데이트 및 보안 옵션이 영향을 받습니다. 사용자에게 미치는 영향 및 계속 보호를 받는 방법에 대해 알아보십시오.

이 문서는 이전에 다음 ID로 출판되었음: KR305601
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
현상
CRT 문자열 형식 함수가 버퍼를 벗어난 곳에 쓰기 때문에 액세스 위반이나 스택 손상을 일으킬 수 있습니다.
원인
printf 스타일 서식에서 모든 형태의 정수 또는 부동 소수점 변환은 함수 _output()의 내부 버퍼를 사용하여 숫자를 문자열로 변환합니다. 이 내부 버퍼의 길이는 512자입니다. 사용자가 제공한 정밀도가 512 이상인 경우 변환은 해당 버퍼의 경계를 벗어나서 쓰게 됩니다.
해결 방법
현재 이 문제를 해결하기 위한 수정 프로그램을 Microsoft에서 구할 수 있지만 아직 테스트가 완전히 완료되지 않았으므로 이 특정한 문제가 발생하는 시스템에만 적용해야 합니다.

이 문제를 즉시 해결하려면 웹 사이트에서 수정 프로그램을 다운로드하십시오.

아래에 나열된 모든 핫픽스(hotfix)를 설치한 후에 컴퓨터를 다시 부팅해야 합니다.


이 수정 프로그램의 Visual C++ 6.0 버전은 http://msdn.microsoft.com/vstudio/downloads/cruntimefix.asp에서 구할 수 있습니다.

이 수정 프로그램의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 가집니다.

날짜시간버전크기이름플랫폼언어
01-Oct-200113:276.00.9370.0278,581msvcrt.dllx86ENU
01-Oct-200113:27없음2,515,968msvcrt.pdbx86ENU


이 수정 프로그램의 Windows 2000 버전은 아래에서 구할 수 있습니다.

이 수정 프로그램의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 가집니다.

날짜시간버전크기이름플랫폼언어
08-Oct-200111:076.10.9359.0290,869msvcrt.dllx86ENU
08-Oct-200111:08없음451,584msvcrt.pdbx86ENU


이 수정 프로그램의 Windows XP 버전은 아래에서 구할 수 있습니다.

이 수정 프로그램의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 가집니다.

날짜시간버전크기이름플랫폼
05-Oct-200107:547.0.2600.15 (xpclnt_qfe.010827-1803)322,560msvcrt.dllx86
05-Oct-200107:54없음353,280msvcrt.pdbx86


현재 상태
Microsoft는 본 문서의 시작 부분에 나열한 제품에서 이 문제를 확인했습니다.
추가 정보

동작을 재현하는 방법

void func(void){    char buffer[10];    _snprintf(buffer, 10, "%.1024x", 1);}
_snprintf, _vsnwprintf, buffer overflow
속성

문서 ID: 305601 - 마지막 검토: 02/24/2014 00:53:40 - 수정: 2.2

  • Microsoft Visual C++ 6.1
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • kbnosurvey kbarchive kbbug kbfix kbqfe kbhotfixserver KB305601
피드백