Pular para o conteúdo principal
CVE-2026-109618 · CVE-2026-109619

Patch de segurança PHP (php2shell)

php2shell é o nome de duas falhas críticas do PHP publicadas em 21 de outubro de 2026 (CVSS v4.0 9.2, sem autenticação). Afetam qualquer site que atenda requisições com PHP, seja WordPress, Drupal, Joomla, Magento, PrestaShop ou Laravel. Estão corrigidas nas versões 8.5.12, 8.4.27, 8.3.36 e 8.2.35.

Você tem esta vulnerabilidade? Atualizamos o PHP, aplicamos a mitigação temporária onde ainda não for possível atualizar e verificamos se há rastros de invasão.

O que aconteceu

php2shell: duas falhas críticas no próprio interpretador

Em 21 de outubro de 2026 o projeto PHP publicou novas versões para corrigir CVE-2026-109618 e CVE-2026-109619. Antecipou a publicação para as 14:00 UTC porque, no dia anterior, um post no Hacker News tinha vazado os identificadores antes do embargo.

CVE-2026-109618 é uma corrupção de memória: se o PHP fica sem memória no meio da preparação dos dados da requisição, a limpeza trata dados inválidos como válidos. Basta uma requisição multipart manipulada que esgote a memória, mesmo que o tamanho pareça dentro dos limites. CVE-2026-109619 deixa estado interno liberado entre requisições, e uma requisição posterior no mesmo worker o reutiliza. A Huntress descreve a falha como um use-after-free no heap sem autenticação, com vazamento de memória e execução remota de código com os privilégios do worker web.

A falha está no PHP, então atualizar o CMS ou os plugins não a corrige. Segundo o php.net, afeta todas as instalações que atendem requisições web: PHP-FPM, Apache com mod_php, php-cgi, FrankenPHP e LiteSpeed. O risco é maior com mod_php, onde, segundo a Rapid7, a exploração é possível antes que o código da aplicação seja executado. A Wiz demonstrou execução remota sem autenticação contra WordPress, Drupal e Joomla, além de um caminho de vazamento de memória que poderia expor senhas, tokens, API keys e certificados.

Em 21 de outubro, a Rapid7 esperava exploração e várias equipes a estavam reproduzindo; a Huntress não a tinha observado em seus clientes. O NCSC britânico e o CERT-EU emitiram alertas no mesmo dia. O PHP está por trás de cerca de 69,7% dos sites cuja linguagem de servidor é conhecida, segundo a W3Techs.

Fontes: php.net · Rapid7 · Huntress · NCSC · Infosecurity Magazine

Você está afetado?

Versões corrigidas do PHP

Se o seu servidor atende requisições web com PHP e a versão é anterior à do seu ramo nesta tabela, você está afetado. As distribuições Linux com suporte estendido lançaram seus pacotes antes: nesse caso vale o aviso do fornecedor, não o número.

Ramo Corrigido em Nota
8.5 8.5.12
8.4 8.4.27
8.3 8.3.36
8.2 8.2.35 Fim de vida em 31/12/2026
8.1, 8.0, 7.4 Sem versão oficial O PHP publicou backports mínimos em código-fonte para quem compila
7.3 e anteriores Sem correção Migrar para um ramo com suporte

Verifique isto

  • Seu site é WordPress, Drupal, Joomla, Magento, PrestaShop, Laravel ou outra aplicação PHP acessível pela internet.
  • php -v ou php-fpm -v mostram um número inferior ao do seu ramo na tabela.
  • Você usa Apache com mod_php: é a configuração de maior risco.
  • Você usa o PHP da sua distribuição Linux: o número pode não mudar mesmo com o pacote corrigido, então é preciso ver o aviso do fornecedor.
  • Você está em hospedagem compartilhada: quem atualiza é o provedor, mas você pode ver a versão no painel ou com phpinfo() e pedir uma data.
Enquanto isso

Se você não pode atualizar hoje

Estas são as mitigações temporárias publicadas pelo projeto PHP. Reduzem a exposição enquanto você prepara a atualização, mas não a substituem.

  1. 01 Defina session.upload_progress.enabled=0 no php.ini ou no pool do PHP-FPM e reinicie todos os workers. Com ini_set() ou .user.ini não funciona.
  2. 02 No PHP 8.5, defina também fatal_error_backtraces=0.
  3. 03 Limite no servidor web ou no proxy o tamanho da requisição e o número de campos, partes e cabeçalhos.
  4. 04 post_max_size=8M se o site não aceita upload de arquivos; 32M se aceita.
  5. 05 Se não puder atualizar, procure indícios de comprometimento e backdoors. Se também não puder mitigar, o NCSC recomenda considerar desconectar o sistema.
Como fazemos

Sete passos, nesta ordem

Aplicamos o mesmo procedimento em cada servidor: primeiro saber qual versão roda em cada lugar, depois corrigir e, no fim, verificar que ninguém entrou antes do patch.

Inventário
versão por servidor
Mitigação
temporária
Atualização
8.5.12 · 8.4.27 · 8.3.36
Verificação
em produção
Indícios
logs · arquivos
Segredos
se necessário
Acompanhamento
novos avisos
01

Inventário de versões

Listamos cada servidor, contêiner e hospedagem onde o PHP roda, com a versão da CLI e a do FPM, o modo (FPM, mod_php, CGI) e quem o mantém. O site esquecido num servidor antigo é o que fica sem patch.

02

Mitigação imediata

Onde a atualização não pode ser feita na hora, desativamos session.upload_progress no php.ini ou no pool, limitamos tamanho e partes das requisições e reiniciamos os workers.

03

Atualização

Subimos para a versão corrigida do seu ramo ou para o pacote corrigido da sua distribuição. Se você ainda está no 8.1 ou anterior, explicamos as duas saídas: compilar com os backports ou migrar para um ramo com suporte.

04

Verificação

Verificamos a versão que de fato atende as requisições, não só a da linha de comando, e se o site, os formulários e os uploads continuam funcionando.

05

Revisão de indícios de comprometimento

Revisamos logs de acesso e de erro, arquivos modificados recentemente no diretório do site e novos usuários administradores no CMS.

06

Rotação de segredos, se necessário

Se houver sinais de acesso, ou se o servidor ficou exposto ao vazamento de memória, trocamos senhas de banco de dados, chaves de API, tokens e certificados.

07

Acompanhamento de novos avisos

Deixamos registrado qual versão cada servidor tem e quais avisos acompanhar (PHP, sua distribuição, seu CMS), para que a próxima atualização comece desse inventário.

Antes e depois

O que costuma ficar pela metade

Aplicar o patch às pressas Com o procedimento
O servidor principal é atualizado e o de staging fica no 8.3.30
Lista de servidores com a versão antes e depois
php -v diz 8.3.36, mas o FPM continua com a versão antiga porque ninguém o reiniciou
Versão verificada no processo que atende as requisições, com o FPM reiniciado
Ninguém olha os logs dos dias em que o site ficou exposto
Logs e arquivos revisados para o período de exposição
As credenciais do banco de dados continuam as mesmas de antes da falha
Segredos trocados quando há indícios ou risco de vazamento

Não sabe qual versão do PHP o seu site usa?

Consultoria gratuita →
FAQ

Perguntas frequentes sobre o php2shell

O que é o php2shell?
É o nome dado a CVE-2026-109618 e CVE-2026-109619, duas falhas críticas (CVSS v4.0 9.2) no interpretador PHP publicadas em 21 de outubro de 2026. Permitem que um atacante sem credenciais corrompa a memória do processo que atende as requisições web e, segundo a Huntress, chegue a executar código e vazar memória.
Meu WordPress está afetado mesmo com os plugins em dia?
Sim, se o PHP do servidor for anterior a 8.5.12, 8.4.27, 8.3.36 ou 8.2.35, conforme o seu ramo. A falha está no interpretador, então atualizar o WordPress ou os plugins não a corrige.
Basta desativar session.upload_progress?
Reduz a exposição enquanto você prepara a atualização, mas o projeto PHP a apresenta como mitigação temporária. Além disso, precisa estar no php.ini ou no pool do FPM, com os workers reiniciados: ini_set() e .user.ini não funcionam.
Ainda uso PHP 7.4 ou 8.0. O que faço?
Esses ramos, e o 8.1, não recebem mais versões oficiais. O PHP publicou backports mínimos em código-fonte para quem compila o próprio PHP, e algumas distribuições Linux com suporte estendido têm pacotes corrigidos. Se nenhuma das duas opções se aplica, a saída é migrar para um ramo com suporte, o que normalmente exige revisar o código da aplicação.
E se eu estiver em hospedagem compartilhada?
Quem atualiza o PHP é o provedor. Você pode verificar a versão no painel ou com phpinfo(), perguntar ao provedor quando ele vai atualizar e, se a plataforma permitir, mudar o site para uma versão corrigida.
Vamos começar

Conte onde o seu PHP roda

Começamos pelo inventário: qual versão cada servidor tem, o que precisa ser feito hoje e o que pode esperar uma janela de manutenção.

Patch de segurança PHP (php2shell)

Conte-nos seu desafio. Propomos uma solução.

Sem compromisso. Em menos de 24 horas, você recebe uma proposta com escopo, cronograma e orçamento. Sem letras miúdas.

Agende uma call gratuita →