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

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
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
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)
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:
  2. Transferir o patch da seguinte localização, seleccionando o ficheiro adequado para o SQL Server versão, arquitectura de processador e idioma:
  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.
ods xproc

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 280380 - Última Revisão: 12/05/2015 22:55:46 - Revisão: 4.2

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

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB280380 KbMtpt
Comentários