CORRECÇÃO: Possível de exploração de estouro de buffer com procedimentos armazenados estendidos

Traduções deste artigo Traduções deste artigo
ID do artigo: 280380 - Exibir os produtos aos quais esse artigo se aplica.
BUG #: 100932 (SQLBUG_70)
BUG #: 100936 (SQLBUG_70)
BUG #: 101013 (SQLBUG_70)
Erro nº: 351188 (SHILOH_bugs)
Erro nº: 351189 (SHILOH_bugs)
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Uma falha em vários dos procedimentos armazenados estendidos fornecidos com o SQL Server pode permitir que um buffer de memória alocado na pilha sejam sobrescritos com dados arbitrários, potencialmente permitindo que um invasor execute código arbitrário no espaço de processo do SQL Server. Esse código arbitrário pode ser usado para fins de tão simples quanto desligando o servidor para geração de um processo diferente pode ser usado para controlar o servidor.

Causa

A função srv_paraminfo é usada para copiar dados passados pelo chamador para um buffer de memória alocada pelo procedimento armazenado estendido (receptor). Se o receptor alocado esse buffer na pilha e se os dados passados para o procedimento armazenado estendido for maiores do que esse espaço alocado, os dados restantes podem ser copiados para a pilha, potencialmente, substituindo o endereço de retorno que executa quando a função retorna. Cuidadosamente criando um buffer com as informações corretas, instruções arbitrárias podem ser colocadas em memória do servidor e permissão para executar.

Resolução

SQL Server 2000

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211INF: Como obter o Service Pack mais recente do SQL Server 2000
Observação : O seguinte hotfix foi criada antes do Microsoft SQL Server 2000 Service Pack 1.

Para o SQL Server 2000, a versão em inglês dessa correção deve ter os seguintes atributos de arquivo 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 esse problema, obtenha o service pack mais recente para o Microsoft SQL Server 7.0. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
301511INF: Como obter o Service Pack mais recente do SQL Server 7.0
Observação : O seguinte hotfix foi criada antes do Microsoft SQL Server 7.0 Service Pack 4.

A versão em inglês dessa correção deve ter os seguintes atributos de arquivo ou posteriores:
   Version      File name
   ------------------------

   7.00.0918    Xprepl.dll
   7.00.0918    Xpstar.dll
   7.00.0918    Replres.dll
				
Observação : devido a dependências do arquivo, o hotfix mais recente ou o recurso que contém os arquivos anteriores pode também conter arquivos adicionais. Para instalar a correção, execute as seguintes etapas:
  1. Leitura Microsoft Security Bulletin MS00-092, localizado no seguinte site da:
    http://www.microsoft.com/technet/security/bulletin/ms00-092.mspx
  2. Baixe o patch do seguinte local selecionando o arquivo apropriado para sua versão, arquitetura de processador e idioma do SQL Server:
    XP Security Downloads
  3. Para extrair os arquivos, execute o executável de extração automática que você baixou. Durante o processo de extração, você será solicitado para um diretório de destino para os arquivos. Escolha um diretório temporário vazio para o qual extrair arquivos. Observação : os as Alpha x 86 versões e o patch devem ser extraídas executando em um sistema de 86 x.

  4. Incluído com o patch é um arquivo Leiame.txt que tem detalhadas instruções de instalação para esse determinado pacote. Siga as instruções para atualizar seu sistema com esses arquivos.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.

SQL Server 2000
Esse problema foi corrigido primeiro no SQL Server 2000 Service Pack 1.

SQL Server 7.0
Esse problema foi corrigido primeiro no SQL Server 7.0 Service Pack 4.

Mais Informações

A lista de procedimentos armazenados estendidos afetados incluir:
  • No SQL Server 7.0:
             xp_sqlinventory
    					
  • No SQL Server 7.0 e SQL Server 2000:
             xp_sqlagent_monitor
    					
  • No SQL Server 2000 somente:
             sp_OACreate
             sp_OAMethod
             sp_OAGetProperty
             sp_OASetProperty
             sp_OADestroy
    					
Essa correção corrige a vulnerabilidade em todos os os envio de Microsoft procedimentos armazenados estendidos. Se outros terceiros procedimentos armazenados estendidos também estiverem instalados em um sistema, talvez seja possível explorar esse ataque usando um desses procedimentos se ele usa a API Open Data Services srv_paraminfo . Se você estendeu procedimentos armazenados instalados por terceiros, contate o fornecedor para saber se os procedimentos são vulneráveis a esse ataque.

A exploração aproveita usando um buffer é muito pequeno para os dados sendo passados. Para verificar o tamanho dos dados sendo passados corretamente, primeiro você deve chamar srv_paraminfo com seu sexto parâmetro, pbData , como NULL. A função retorna o comprimento real dos dados do parâmetro. Em seguida, pode ser alocado um buffer apropriadamente dimensionado e uma segunda chamada pode ser feita para recuperar os dados. A função srv_paraminfo não permite que você especifique um comprimento máximo de dados para copiar para o buffer. Para obter mais informações, consulte o tópico srv_paraminfo nos manuais online do SQL Server.

Propriedades

ID do artigo: 280380 - Última revisão: quarta-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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