CORRECÇÃO: Memória intermédia exceder a capacidade de exploração possível com procedimentos armazenados estendidos

Traduções de Artigos Traduções de Artigos
Artigo: 280380 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 100932 (SQLBUG_70)
N.º DE BUGS: 100936 (SQLBUG_70)
N.º DE BUGS: 101013 (SQLBUG_70)
Erro n.º: 351188 (SHILOH_bugs)
Erro n.º: 351189 (SHILOH_bugs)
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Uma falha em diversos os procedimentos armazenados estendidos fornecidos com o SQL Server pode permitir uma memória intermédia atribuída na pilha para serem substituídos com dados arbitrários, potencialmente permitir que um intruso executasse código arbitrário no espaço de processo do SQL Server. Este código arbitrário pode ser utilizado para fins tão simples como encerrar o servidor para gerar um processo diferente que pode ser utilizado para controlar o servidor.

Causa

A função srv_paraminfo é utilizada para copiar dados passados pelo chamador para uma memória intermédia atribuída pelo procedimento armazenado expandido (destinatário da chamada). Se o destinatário da chamada atribuída esta memória intermédia na pilha e se os dados passados ao procedimento armazenado expandido for superiores este espaço atribuído, os restantes dados podem ser copiados para a pilha, substituindo o endereço do remetente que é executada quando a função devolve. Criando cuidadosamente uma memória intermédia com as informações correctas, instruções arbitrários podem ser colocadas na memória do servidor e podem ser executadas.

Resolução

SQL Server 2000

Para resolver este problema, obtenha o service pack mais recente do Microsoft SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211INF: How to Obtain the Latest SQL Server 2000 Service Pack
Nota : A correcção seguinte foi criada antes para o Microsoft SQL Server 2000 Service Pack 1.

Para o SQL Server 2000, a versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro ou posteriores:
   Version      File name
   -------------------------

   8.00.0223    Xprepl.dll
   8.00.0223    Xpstar.dll
   8.00.0223    Xpqueue.dll
   8.00.0223    Odsole70.dll
				


SQL Server 7.0

Para resolver este problema, obtenha o service pack mais recente do Microsoft SQL Server 7.0. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
301511INF: How to Obtain the Latest SQL Server 7.0 Service Pack
Nota : A correcção seguinte foi criada anterior ao Microsoft SQL Server 7.0 Service Pack 4.

A versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro ou posteriores:
   Version      File name
   ------------------------

   7.00.0918    Xprepl.dll
   7.00.0918    Xpstar.dll
   7.00.0918    Replres.dll
				
Nota : devido a dependências de ficheiros, a correcção mais recente ou funcionalidade que contém os ficheiros anteriores poderá também conter ficheiros adicionais. Para instalar a correcção, execute os seguintes passos:
  1. Ler Microsoft Security boletim MS00-092, localizado no seguinte Web site:
    http://www.microsoft.com/technet/security/bulletin/ms00-092.mspx
  2. Transferir o patch da seguinte localização, seleccionando o ficheiro adequado para o SQL Server versão, arquitectura de processador e idioma:
    XP Security Downloads
  3. Para extrair os ficheiros, execute o executável transferido. Durante o processo de extracção, é-lhe pedido para um directório de destino para os ficheiros. Escolha um directório temporário vazio para o qual extrair ficheiros. Nota : os Alpha e x 86 versões do patch tem ser extraídas através da execução num sistema x 86.

  4. Incluído com o patch é um ficheiro Readme.txt que tem detalhadas instruções de instalação para esse pacote específico. Siga as instruções para actualizar o sistema com estes ficheiros.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

SQL Server 2000
Este problema foi corrigido pela primeira vez no SQL Server 2000 Service Pack 1.

SQL Server 7.0
Este problema foi corrigido pela primeira vez no SQL Server 7.0 Service Pack 4.

Mais Informação

A lista de procedimentos armazenados estendidos afectados inclui:
  • No SQL Server 7.0:
             xp_sqlinventory
    					
  • No SQL Server 7.0 e SQL Server 2000:
             xp_sqlagent_monitor
    					
  • No SQL Server 2000 apenas:
             sp_OACreate
             sp_OAMethod
             sp_OAGetProperty
             sp_OASetProperty
             sp_OADestroy
    					
Esta correcção resolve a vulnerabilidade em todas os Microsoft enviada procedimentos armazenados estendidos. Se outros fabricantes expandido procedimentos armazenados também estiverem instaladas num sistema, poderá ser possível explorar este ataque utilizando um desses procedimentos se utilizar a API de serviços de dados abrir srv_paraminfo . Se tiver expandido procedimentos armazenados instalados por terceiros, contacte esse fornecedor para saber se os procedimentos são vulneráveis a este ataque.

A exploração tira partido da utilização de uma memória intermédia é demasiado pequena para os dados que está a ser transmitidos. Para determinar correctamente o comprimento dos dados a ser transmitidos, primeiro tem de chamar srv_paraminfo com o parâmetro sexto, pbData , como NULL. A função devolve, em seguida, o comprimento real dos dados de parâmetro. Em seguida, pode ser atribuída uma memória intermédia correctamente tamanho e uma segunda chamada pode ser efectuada para obter os dados. A função srv_paraminfo não lhe permite especificar um comprimento máximo de dados a copiar para a memória intermédia. Para mais informações, consulte o tópico srv_paraminfo no SQL Server Books Online.

Propriedades

Artigo: 280380 - Última revisão: 5 de setembro de 2007 - Revisão: 4.2
A informação contida neste artigo aplica-se a:
  • 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 Service Pack 1
  • Microsoft SQL Server 7.0 Service Pack 2
Palavras-chave: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB280380 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 280380

Submeter comentários

 

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