Início » Web » Falha crítica de segurança é encontrada no PHP

Falha crítica de segurança é encontrada no PHP

Por
5 anos atrás
Já conhece a nova extensão do Tecnoblog? Baixe Agora

Uma falha recente encontrada no PHP e liberada para o público por engano pode deixar qualquer página no servidor aberta para inserção de código malicioso. A vulnerabilidade, que afeta apenas servidores rodando o PHP em modo CGI, foi descoberta por um time de hackers durante uma competição.

A essência da falha é que hoje é possível chamar parâmetros do PHP direto pela URL. Por exemplo, ao acessar o endereço http://localhost/index.php?-s, o servidor executaria o PHP com o parâmetro -s, que exibe o código-fonte do arquivo, e não o HTML gerado por ele. Só isso já seria problema suficiente (afinal, é comum inserir dados como senhas do banco de dados no código-fonte), mas o time que descobriu a falha também percebeu que ela também permite inserir código malicioso no arquivo e executá-lo.

Descobertas desse tipo normalmente são enviadas para os desenvolvedores que primeiro resolvem o problema e lançam uma atualização para só então os veículos anunciarem a falha e a correção, mas por uma falha humana o bug foi acidentalmente enviado como “público” no sistema de bugs do PHP.

Embora o time de desenvolvedores já tenha liberado uma correção, há informações de que elas não resolvem totalmente o problema. O ideal é usar o PHP de outra forma que não em modo CGI (em modo FastCGI essa falha não acontece) ou incluir uma regra para que o Apache bloqueie URLs com “-” no arquivo .htaccess, evitando assim o uso de parâmetros do PHP. A regra é essa abaixo:

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]

Uma nova atualização deve sair em breve, já com uma correção mais eficiente. Até lá, todo cuidado é pouco.

Com Informações: H Online.

Mais sobre: , ,
  • Opa, posso testar no TB? 😛

    • Breno Caldeira

      Testa direto no FB, ele foi feito em PHP :]

      • O Facebook usa o HipHop, uma espécie de código milagroso ultra-fodástico que converte o código PHP em algo envolvendo C++ essencialmente otimizado e compilado..

        Ou seja, o .php que você acessa na realidade é um código totalmente compilado e rodando como se fosse um servidor web normal, tipo apache e afins.

        Resumindo: Não funciona por lá não, nunca. 😛

  • Viu como a Globo tava certa em falar que páginas que terminam em .php eram cilada?

    • Renan A Mendonça

      Eu realmente não entendi como que a Globo poderia algum dia estar certa em relação a isso.

      Com base em que você considera o php uma cilada? Afinal, falhas de segurança existem em todas a linguagens programação, cabe a nós encontra-las e corrigi-las antes que alguém faça uso público das mesmas. Só porque a Globo disse, não quer dizer nada, ainda mais porque foi a Globo que disse.

      • @pedronaroga

        Amigo, você conhece o conceito de piada?

    • Claudio H.

      Claro, agora os arquivos .exe que a titia abre depois de baixar do e-mail não são cilada né? E os virus de computador são todos feitos em php, né?

  • A grande maioria das instalações PHP com Apache rodam a partir de módulo do apache. Mas que a falha é preocupante, isso é.

    • E quem hoje em dia ainda usa Apache?

      • Ítalo

        essa pergunta é séria ou é sarcasmo? o.o

  • Só tomarem os certos cuidados.

  • não sei pq nem me assusto mais quando vejo a palavra falha e php na mesma frase

  • Preocupante, mas fiz alguns testes em meus códigos e tudo certo por aqui.
    Mas fica a dica para o pessoal. Mas vou forçar algumas situações e ver o que consigo…

  • Meu ex-servidor estava com um defeito como esse, aproveitei e hackeei todo mundo que usava ele. Nisso consegui a senha de outros servidores, invadi computadores, quase derrubei um site que estava doido pra fazer-lo desde criança. Velha infância. Fui expulso do servidor. Nem ligo: o PHP que usavam é tão desatualizado que usam “Safe_Mode” por ter “Safe” no nome.

  • Fabio

    Quer dizer que para quem usa NGINX o negócio é mais foda ainda?

    • Por padrão o Nginx vem com FastCGI, logo não tem problema.

      Que eu saiba o CGI padrão sequer é compatível com ele.

      • Fabio

        O mesmo podemos aplicar no spawn-fcgi?

  • Isso é o que eu chamo de “PHP vírus”. Oh, wait!

  • Falhas como esta, infelizmente acontecem e mais do que gostariamos, mas é isso ai, PHP continua evoluindo e esperamos que nunca chegue a perfeição 🙂

  • Pablo

    Qualquer código bem desenvolvido não passa por isso nem de longe, existe muitas maneiras de se prevenir coisas deste tipo..

  • Opa..

    http://www.facebook.com/?-s

    Alguem precisando de emprego ai? 🙂

    • Fer

      Easter egg! HAHAHA XP

      Interessante, se você é hacker ou curioso o suficiente para procurar por falhas graves no Facebook, que tal trabalhar conosco? XP

  • Thiago

    O bug foi postado para a versão 5.4, alguém pode confirmar se só essa versão é afetada? Fiz alguns testes em servidores rodando 5.2 e 5.3 com Suphp (cPanel) e não consegui rodar o exploit.
    Ou será que a cPanel já fez algum patch pra corrigir isso nas versões que eles usam ?

    • to começãndo a estruturar meu site, mas fiz uns testes não deu nada.

  • Mais…, se eu usar isso no htacess, como fica minha otimização? nao vo poder usar mais urls tipo a do TB?????????????? D=

  • Caraca! Felizmente meu servidor não está comprometido… eu não uso CGI(mesmo o PHP sendo uma linguagem meio que baseada em CGI) e além de testar e não dar problemas no meu servidor… então assim espero que não aconteça nada de mal com todos…

  • Me assusto em pessoas ainda usarem PHP em Modo CGI, ou via mod_php… 🙂

  • Javeiri

    Nego não entendeu que o facebook sacou do bug muito antes e colocou aquele include de propósito e que vai para uma página de vaga de engenheiro de segurança…

    • Fer

      Pois é… Mais óbvio que tudo que foi citado nessa pagina! XP

  • leandro

    aquilo e Engenheiro de segurança? ou de software?

  • Eu trabalho com tecnologia Microsoft (ASP.NET) mas esse tipo de bug tem que ser corrigido o quanto antes.