PHP2Shell: porque é que a internet está em chamas hoje, e porque é que a PixelUnion não é afetada

Se trabalhas perto de um servidor web, hoje não é uma quarta-feira tranquila. Duas vulnerabilidades críticas no PHP, apelidadas de PHP2Shell, foram divulgadas online antes de a equipa do PHP conseguir lançar uma correção. Administradores de todo o mundo esperam agora por um patch previsto para as 14:00 UTC de hoje, e os atacantes esperam ao lado deles.
Resumo para os utilizadores da PixelUnion: as tuas fotos não correm perigo. A versão mais longa vem a seguir.
O que é o PHP2Shell
PHP2Shell é o nome de duas falhas, CVE-2026-109618 e CVE-2026-109619. Ambas têm 9,2 em 10 na escala CVSS v4.0. Essa classificação significa que um atacante consegue executar o seu próprio código num servidor vulnerável sem iniciar sessão. Na prática: envias o pedido certo a um site e ficas com uma shell na máquina por trás dele. Daí o nome.
A causa exata não foi publicada. Os investigadores suspeitam de um erro de memória (um chamado use-after-free) na parte do PHP que trata dos carregamentos de ficheiros, mas isso ainda não está confirmado, e pelo menos uma auditoria contesta-o. O que está confirmado: a empresa de segurança watchTowr diz que reproduziu uma das duas falhas e que “these vulnerabilities are indeed real.” Também ainda não é claro que versões do PHP são afetadas. As primeiras alegações apontam para tudo até ao PHP 5.4, e o PHP não publicou um intervalo oficial.
Porque é que a internet está em chamas hoje
Três coisas tornam este caso pior do que o boletim de segurança comum.
Primeiro, o alcance. O PHP corre cerca de três quartos de todos os sites cuja linguagem de servidor é conhecida. WordPress, a maioria das lojas online, inúmeros painéis de alojamento e fóruns assentam nele. Uma falha de execução remota de código no próprio PHP, e não num plugin ou numa aplicação, atinge uma parte enorme da web de uma só vez.
Segundo, a fuga. Normalmente a correção sai primeiro e os detalhes vêm depois, o que dá vantagem a quem defende. Desta vez os detalhes saíram antes do patch. A solução provisória que circulou primeiro, desativar a funcionalidade de progresso de carregamento do PHP, revelou-se incompleta. Houve por isso um período em que todos sabiam que a porta estava aberta e ninguém tinha fechadura.
Terceiro, o próprio patch passa a ser um mapa. Assim que as versões corrigidas forem públicas, os atacantes podem comparar o código antigo com o novo e ver exatamente o que mudou. A empresa de segurança Sansec espera exploração em massa cerca de 15 minutos depois do lançamento. Além disso, as análises mostram que cerca de 884 000 servidores expostos à internet ainda anunciam PHP 8.1 ou anterior. Esses ramos chegaram ao fim de vida e provavelmente nunca terão correção.
Hoje, por isso, muita gente está a olhar para uma página de lançamentos, pronta para atualizar assim que ela ficar disponível. Alguns não chegarão a tempo.
Porque é que a PixelUnion não é afetada
A PixelUnion corre sobre o Immich, e o Immich não está escrito em PHP. O servidor é TypeScript a correr em Node.js, com um serviço de machine learning separado em Python. Não há nenhum interpretador de PHP no caminho entre o teu telemóvel e as tuas fotos. Uma falha no tratamento de carregamentos do PHP não pode ser explorada num servidor que não corre PHP.
Para ser rigoroso: tínhamos, de facto, um pequeno serviço periférico em PHP. Ficava fora da plataforma de fotos, em infraestrutura separada, e não tinha acesso à tua biblioteca. Não quisemos apostar em que um patch desconhecido chegasse a tempo, por isso desligámo-lo antes da janela de lançamento. Fica desligado até verificarmos uma versão corrigida.
Nada disto quer dizer que nos achamos imunes a problemas de segurança. Todas as stacks têm falhas, a nossa incluída. O que conta é saber exatamente o que corre onde, manter a superfície de ataque pequena e agir depressa quando algo assim aparece. Esse é o trabalho, e continuamos a fazê-lo.
Se geres os teus próprios sites em PHP, consulta os anúncios de segurança do PHP e aplica o patch logo que a versão saia. Se procuras um sítio para as tuas fotos construído com este tipo de cuidado, teremos todo o gosto em receber-te.
Começa grátis com a PixelUnion →
Foto de capa de Ricardo Gomez Angel na Unsplash.