PHP corrige duas vulnerabilidades críticas de RCE sem autenticação (CVE-2026-109618, CVE-2026-109619): atualize agora
22 de outubro de 2026
0 minutos de leituraNa quarta-feira, 21 de outubro de 2026, às 14h UTC, o projeto PHP lançou o PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35 para corrigir duas vulnerabilidades críticas, ambas com classificação CVSS v4.0 9.2, que podem permitir execução remota de código sem autenticação. A equipe de segurança do PHP recomenda: "Não há medidas de mitigação completas; atualizar é a única opção segura."
São falhas no runtime do PHP, não em um pacote do Composer. Isso muda a forma de detectá-las e corrigi-las, como explicamos abaixo.
Resumo Se você usa PHP para atender a solicitações web (PHP-FPM, Apache com mod_php, php-cgi, FrankenPHP, LiteSpeed), atualize hoje para 8.5.12, 8.4.27, 8.3.36 ou 8.2.35. Se você usa a versão 8.1 ou anterior, obtenha um pacote com backport da sua distribuição ou de um fornecedor de LTS, ou faça a atualização.
O que aconteceu
Todos os horários estão em UTC.
20 de outubro: A equipe de segurança do PHP publicou um aviso prévio sobre um lançamento de segurança crítico programado para 21 de outubro, às 14h UTC. Ele corrige duas vulnerabilidades avaliadas em CVSS v4.0 9.2, com a ressalva de que o lançamento poderia ocorrer antes caso os detalhes vazassem ou houvesse exploração em ambiente real.
21 de outubro, antes das 14h UTC: A Snyk publicou avisos para os dois CVEs, SNYK-UNMANAGED-PHP-21347795 (CVE-2026-109618) e SNYK-UNMANAGED-PHP-21347796 (CVE-2026-109619), para alertar os clientes sobre as medidas necessárias e garantir que os projetos monitorados fossem identificados assim que as versões corrigidas fossem conhecidas.
21 de outubro, 14h UTC: O aviso de segurança do PHP e as quatro versões corrigidas são publicados. Em cerca de 30 minutos, os avisos da Snyk são atualizados com todos os detalhes relevantes, incluindo os intervalos afetados e as versões corrigidas.
A partir de 21 de outubro: As distribuições Linux (que receberam os patches antecipadamente) começam a publicar seus próprios avisos. A Snyk publica avisos para essas distribuições à medida que são divulgados, como SNYK-UBUNTU2604-PHP85-21373920. A lista atualizada está em CVE-2026-109618 e CVE-2026-109619.
As duas vulnerabilidades
As duas estão no ciclo de vida das solicitações do mecanismo PHP e podem ser exploradas antes da execução de qualquer código da aplicação. Esse é um dos fatores que tornam essas vulnerabilidades tão disseminadas e perigosas.
Detalhes técnicos
CVE-2026-109618, RCE por corrupção causada por falta de memória: O tratamento de falta de memória pode interromper o PHP quando os dados internos de uma solicitação estão parcialmente inicializados. Durante a limpeza da solicitação, esses dados inválidos são tratados como válidos. Um invasor capaz de levar um worker ao limite de memória com uma solicitação maliciosa pode provocar a interrupção.
CVE-2026-109619, RCE por estado global obsoleto: O estado interno associado a uma solicitação pode persistir depois que a memória que o armazenava é liberada. Uma solicitação posterior atendida pelo mesmo worker pode usar esse estado obsoleto antes que a inicialização normal o redefina. Em um modelo com workers de longa duração, isso representa um uso após liberação entre solicitações.
Essas falhas foram encontradas com o auxílio de IA em um runtime que está em produção há três décadas. Em um mundo de LLMs e agentes, todo mundo ainda está executando servidores — e o modelo que encontrou essas falhas é do mesmo tipo que os invasores têm à disposição hoje. Essa é a premissa por trás do Evo by Snyk: segurança orientada por IA para as aplicações executadas pelos agentes, não apenas para os próprios agentes.
Quem está em risco
Todas as instalações do PHP que atendem a solicitações web estão em risco. Isso inclui PHP-FPM, Apache com mod_php, php-cgi, FrankenPHP, LiteSpeed e outros. O Apache com mod_php é o mais vulnerável: um exploit demonstrado mostra que uma única solicitação sem autenticação pode disparar o ataque antes da execução do código da aplicação.
O projeto PHP não fornece mais atualizações para o PHP 8.1 e versões anteriores. Portanto, instalações sem patch do 8.1, 8.0 ou 7.4 estão vulneráveis e não têm uma correção oficial do projeto. Dada a gravidade, a equipe de segurança do PHP publicou backports mínimos do código-fonte para as versões 7.4, 8.0 e 8.1, destinados a quem compila a partir do código-fonte ou não conta com um fornecedor de LTS.
O que fazer agora
Atualize. As versões corrigidas são PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35. A versão 8.2 chega ao fim da vida útil em 31 de dezembro de 2026. Portanto, se você usa a 8.2, aproveite para planejar a próxima atualização.
Consulte seu fornecedor. As distribuições Linux e os fornecedores de LTS receberam os patches antes do lançamento. Instale os pacotes atualizados fornecidos por eles, em vez de esperar por uma compilação a partir do código-fonte. Uma versão corrigida da distribuição pode continuar usando um número de versão antigo. Por isso, consulte também o aviso ou o nível de patch da distribuição.
Verifique o que está realmente em execução. Confira a versão do PHP em cada host e imagem (
php -vou a tag da imagem). Os resultados de uma verificação, por si só, não confirmam que uma instalação está corrigida.Se você não puder atualizar hoje, o PHP lista medidas que reduzem a exposição a caminhos específicos, mas não tornam uma instalação segura: definir memory_limit=-1 em um contexto em que as aplicações não possam sobrescrevê-lo, usar um post_max_size baixo, definir session.upload_progress.enabled=0 e reiniciar todos os workers e, na versão 8.5, definir fatal_error_backtraces=0. Consulte o aviso correspondente para conhecer as ressalvas de cada medida.
Se você usa PHP 8.1 ou anterior, atualize para uma versão compatível ou obtenha um pacote com backport da sua distribuição ou de um fornecedor de LTS. Os backports do código-fonte do PHP para as versões 7.4, 8.0 e 8.1 são o último recurso para equipes que compilam a partir do código-fonte.
O ecossistema de código aberto
A equipe de segurança do PHP avisou o ecossistema com um dia de antecedência, informando o horário exato, a gravidade e sem divulgar detalhes sobre exploração. Os patches foram compartilhados previamente com as distribuições Linux para que as correções nos pacotes fossem lançadas junto com a versão do código-fonte. Também foram publicados backports para versões sem suporte (7.4, 8.0, 8.1). Os usuários de um popular repositório mantido por voluntários (rpms.remirepo.net) foram avisados de que ele não seria atualizado no primeiro dia e receberam orientações sobre o que fazer. Além disso, as recomendações de mitigação explicam com transparência o que cada configuração não protege.
É assim que funciona a divulgação coordenada quando um projeto mantido por voluntários faz tudo certo. Também foi por isso que, na Snyk, conseguimos publicar os avisos antes do lançamento e completá-los pouco depois: um cronograma divulgado permite que todos os envolvidos se preparem.
Como funciona o Snyk SCA
O Snyk Open Source analisa o que sua aplicação declara em arquivos de manifesto ou de build, como composer.json e composer.lock. O interpretador PHP não é uma dependência declarada. Ele é instalado por um Dockerfile, um pacote de distribuição, uma imagem de plataforma ou manualmente. Uma restrição "php": ">=8.2" em composer.json informa quais versões a aplicação aceita, mas não exatamente qual versão está implantada.
Como a plataforma Snyk ajuda você a encontrar PHP exposto
O que você usa | O que você verá para CVE-2026-109618 e CVE-2026-109619 |
|---|---|
Snyk Open Source (CLI ou integração com SCM) | Os CVEs não são reportados, pois o runtime do PHP não é uma dependência comum no arquivo de manifesto. Em projetos PHP/Composer, a Snyk mostra as dependências declaradas pela aplicação, o que pode ajudar você a identificar quais projetos são aplicações PHP. A restrição de versão do PHP declarada não informa qual versão está implantada. |
Snyk C/C++ verificação de dependências não gerenciadas | Os avisos são exibidos quando o runtime do PHP está presente no projeto e podem ser filtrados pelo ID do CVE. |
Snyk Container | O PHP instalado por meio de pacotes de distribuições Linux é reportado assim que a distribuição publica seu aviso. Algumas distribuições compatíveis já publicaram avisos, disponíveis nos resultados de teste (por exemplo, SNYK-RHEL10-PHP84-21392647 e SNYK-UBUNTU2604-PHP85-21373920). Estamos importando os avisos de outras distribuições à medida que são publicados. Eles estão disponíveis aqui: CVE-2026-109618 CVE-2026-109619. O Snyk Container não detecta o PHP compilado a partir do código-fonte, incluindo as imagens oficiais php: do Docker. |
Snyk API & Web | O DAST examina e testa aplicações em execução de fora para dentro e identifica a tecnologia usada. Se a aplicação de um cliente estiver exposta ao php2shell, nós detectamos e reportamos o problema. |
Relatório Zero Day | O relatório Zero Day da Snyk compara seus projetos com os avisos. Por isso, ele só pode listar projetos verificados com verificações de dependências não gerenciadas ou verificações de Container de pacotes de distribuição. Em projetos verificados apenas com Open Source, nenhum resultado será exibido. |
Descubra sua superfície de ataque PHP com o Snyk API & Web
Antes de aplicar patches, você precisa saber onde procurar. A guia Discovery do Snyk API & Web enumera os ativos encontrados nos seus domínios e identifica a tecnologia usada. Abra Discovery, defina o filtro Tech como PHP e veja todos os hosts e endpoints descobertos nos quais o PHP foi identificado, junto com a classificação e a pontuação de risco e a data da última identificação. Tudo pronto para verificar ou adicionar como alvo.

O mesmo filtro Tech também está disponível na lista Targets. Assim, você pode filtrar da mesma forma as aplicações que adicionou para exibir apenas as que usam PHP.

Isso não informa a versão do PHP. Mas mostra onde procurar, uma etapa essencial para corrigir o problema.
Teste sua aplicação contra a vulnerabilidade com o Snyk API & Web
O Snyk API & Web permite verificar suas aplicações e APIs para detectar se estão vulneráveis ao PHP2Shell.
Uma verificação com um perfil completo agora testa a vulnerabilidade PHP2Shell. Você também pode criar um perfil de verificação personalizado para testar exclusivamente o PHP2Shell. Assim, fica fácil saber se suas aplicações estão vulneráveis ou se a correção já foi aplicada.

O que estamos fazendo
Os avisos para os dois CVEs foram publicados antes do lançamento do PHP, às 14h UTC, e atualizados com as versões afetadas e os detalhes das correções em cerca de 30 minutos.
Os avisos das distribuições estão sendo importados à medida que cada distribuição Linux os publica. Ubuntu e Red Hat já estão disponíveis.
Um relatório Zero Day para este evento está disponível para projetos de dependências não gerenciadas e Container.
Como sempre, a equipe de pesquisa de segurança da Snyk está acompanhando esta divulgação e atualizará os avisos conforme novas informações forem disponibilizadas. Se tiver dúvidas, entre em contato com sua equipe de conta da Snyk ou com o Support.
Referências
Todos os avisos da Snyk para CVE-2026-109618 e CVE-2026-109619
Documentação da verificação de dependências não gerenciadas do Snyk C/C++
RELATÓRIO
Panorama da adoção da IA agentiva em 2026: Volume III
Sua lista de modelos aprovados mostra o que está em uso, mas não a que cada modelo pode acessar. Quer saber por onde começar a auditoria dos agentes?



