FIX: 확장 저장 프로시저를 사용하여 발생할 수 있는 버퍼 오버플로

기술 자료 번역 기술 자료 번역
기술 자료: 280380 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR280380
버그 #: 100932(SQLBUG_70)
버그 #: 100936(SQLBUG_70)
버그 #: 101013(SQLBUG_70)
버그 #: 351188(SHILOH_bugs)
버그 #: 351189(SHILOH_bugs)
모두 확대 | 모두 축소

이 페이지에서

현상

SQL Server에 들어 있는 몇 개의 확장 저장 프로시저의 문제로 인해 스택에 할당된 메모리 버퍼가 임의 데이터를 덮어 쓰게 되어 침입자가 잠재적으로 SQL Server 프로세스 공간에 임의 코드를 실행할 수 있습니다. 이 임의 코드는 서버를 종료하는 간단한 작업이나 서버를 제어하는 데 사용할 수 있는 다른 프로세스를 만드는 작업에 사용할 수 있습니다.

원인

srv_paraminfo 기능은 확장 저장 프로시저(callee)가 할당한 메모리 버퍼가 호출하여 전송한 데이터를 복사하는 데 사용됩니다. callee가 스택에 이 버퍼를 할당하고 확장 저장 프로시저에 전송된 데이터가 할당 공간보다 클 경우 나머지 데이터는 스택에 복사되고 잠재적으로 기능이 반환될 때 실행되는 반환 주소를 덮어 쓸 수 있습니다. 버퍼를 올바르게 구성하면 임의 지침을 서버의 메모리에 저장하여 실행할 수 있습니다.

해결 방법

SQL Server 2000

이 문제를 해결하려면 Microsoft SQL Server 2000의 최신 서비스 팩을 구하십시오. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
290211 최신 SQL Server 2000 서비스 팩을 구하는 방법
참고: Microsoft SQL Server 2000 서비스 팩 1 이전에 다음 핫픽스가 만들어졌습니다.

SQL Server 2000용 수정 프로그램의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 가집니다.
표 축소표 확대
버전파일 이름
8.00.0223Xprepl.dll
8.00.0223Xpstar.dll
8.00.0223Xpqueue.dll
8.00.0223Odsole70.dll


SQL Server 7.0

이 문제를 해결하려면 Microsoft SQL Server 7.0의 최신 서비스 팩을 구하십시오. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
301511 INF: 최신 SQL Server 7.0 서비스 팩 구하기
참고: Microsoft SQL Server 7.0 서비스 팩 4 이전에 다음 핫픽스가 만들어졌습니다.

이 수정 프로그램의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 가집니다.
표 축소표 확대
버전파일 이름
7.00.0918Xprepl.dll
7.00.0918Xpstar.dll
7.00.0918Replres.dll
참고: 파일 종속 관계로 인해 위의 파일이 들어 있는 최신 핫픽스나 기능에 추가 파일이 들어 있을 수 있습니다. 수정 프로그램을 설치하려면 다음과 같이 하십시오.
  1. 다음 웹 사이트에 있는 Microsoft Security Bulletin MS00-092를 참조하십시오.
    http://www.microsoft.com/korea/technet/security/bulletin/ms00-092.asp
  2. SQL Server 버전, 프로세서 아키텍처 및 언어에 맞는 파일을 선택하여 다음 위치에서 패치를 다운로드합니다.
    XP 보안 다운로드(XP Security Downloads)
  3. 파일의 압축을 풀려면 다운로드한 자동 압축 실행 파일을 실행합니다. 압축 풀기를 진행하는 중에 대상 디렉터리를 입력하게 됩니다. 비어 있는 임시 디렉터리를 선택하여 파일의 압축을 풉니다.참고: 패치의 Alpha 및 x86 버전은 모두 반드시 x86 기반 시스템에서 실행하여 압축을 풀어야 합니다.

  4. 패치에 포함된 Readme.txt 파일에는 특정 패키지에 대한 자세한 설치 방법이 들어 있습니다. 설치 방법에 따라 이러한 파일을 사용하여 시스템을 업데이트합니다.

현재 상태

Microsoft는 이 문서의 시작 부분에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.

SQL Server 2000
이 문제는 SQL Server 2000 서비스 팩 1에서 처음 수정되었습니다.

SQL Server 7.0
이 문제는 SQL Server 7.0 서비스 팩 4에서 처음 수정되었습니다.

추가 정보

관련된 확장 저장 프로시저의 목록은 다음과 같습니다.
  • SQL Server 7.0
             xp_sqlinventory
    					
  • SQL Server 7.0 및 SQL Server 2000
             xp_sqlagent_monitor
    					
  • SQL Server 2000에만 해당
             sp_OACreate
             sp_OAMethod
             sp_OAGetProperty
             sp_OASetProperty
             sp_OADestroy
    					
이 수정 프로그램은 Microsoft의 모든 확장 저장 프로시저 문제를 수정합니다. Open Data Services API srv_paraminfo를 사용하는 타사의 확장 저장 프로시저가 시스템에 설치되어 있을 경우 그 중 하나를 이용하여 이 문제를 해결할 수도 있습니다. 타사의 확장 저장 프로시저가 설치되어 있을 경우 공급업체에 문의하여 프로시저가 보안 문제에 노출되어 있는지 확인하십시오.

전달되는 데이터에 비해 용량이 작은 버퍼를 활용할 수도 있습니다. 전달되는 데이터의 길이를 올바르게 확인하려면 우선 여섯 번째 매개 변수 pbData(NULL)로 srv_paraminfo를 호출해야 합니다. 그러면 매개 변수 데이터의 실제 길이가 반환됩니다. 알맞은 크기의 버퍼가 할당되고 나면 다시 호출하여 데이터를 검색할 수 있습니다. srv_paraminfo 기능을 사용하여 데이터의 최대 길이를 지정하여 버퍼에 복사할 수는 없습니다. 자세한 내용은 SQL Server 온라인 설명서의 srv_paraminfo 항목을 참조하십시오.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 280380 - 마지막 검토: 2006년 1월 20일 금요일 - 수정: 4.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Data Engine 1.0
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 7.0 서비스 팩 1
  • Microsoft SQL Server 7.0 서비스 팩 2
키워드:?
kbbug kbfix kbsqlserv2000sp1fix KB280380

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com