terça-feira, 20 de dezembro de 2011

Bug descoberto no PHP pode derrubar servidores

Erro envolve o tratamento de números de ponto flutuante e faz processador PHP entrar em loop.

Um bug recém-descoberto existente em algumas versões da linguagem de script PHP pode derrubar servidores se for solicitada uma conversão de um número enorme no formato de ponto flutuante, abrindo a possibilidade de que a falha possa ser explorada por hackers.

O bug fará com que o processador PHP entre em loop infinito caso tente converter a série de dígitos "2.2250738585072011e-308", de string para ponto flutuante.

Pelo menos um usuário PHP comentou que um usuário malicioso poderia derrubar um servidor rodando PHP simplesmente enviando este número ao processador PHP por meio da função get da linguagem.

O bug parece afetar apenas as versões 5.2 e 5.3 da linguagem, e apenas quando elas estiverem rodando em uma CPU Intel de 32 bits com o conjunto de instruções x87.

Para corrigir o problema, os usuários podem baixar patches para as duas versões ou recompilar o PHP com flags adicionais para tratar números de ponto flutuante.

O cientista da computação Rick Regan foi o primeiro a reportar o bug na segunda-feira (3/1). No dia seguinte, a equipe de desenvolvimento do PHP publicou patches para o problema.

Regan especulou que este número em particular é problemático porque é o "maior número subnormal de ponto flutuante de precisão dupla".

Em geral, os números de ponto flutuante são um desafio para os desenvolvedores, dada a complexidade e as diferentes técnicas que compiladores e conjuntos de instrução de hardware usam para representar tais números.

0 comentários:

Postar um comentário

 

SECURITY MASTER Copyright © 2011 -- Template created by Security Master -- Powered by Blogger