>_toolkitbox

~/ / Artigos sobre IA / A IA ajudou a encontrar o PHP2Shell: as vulnerabilidades críticas do PHP de outubro de 2026

A IA ajudou a encontrar o PHP2Shell: as vulnerabilidades críticas do PHP de outubro de 2026

Segundo a imprensa, modelos de IA ajudaram pesquisadores a encontrar duas vulnerabilidades críticas no próprio PHP, CVE-2026-109618 e CVE-2026-109619, que podem permitir a execução remota de código sem autenticação. O PHP lançou versões corrigidas em 21 de outubro de 2026. Este artigo resume o que os comunicados oficiais e as reportagens dizem sobre as falhas e sobre a participação da IA, e permite verificar se o PHP que você usa já tem a correção.

Conferido com os comunicados oficiais em 2026-10-24. Esta página não é um comunicado oficial, e os detalhes podem mudar, por isso acompanhe as fontes no final.

O que fazer primeiro

  1. Atualize o PHP para uma versão corrigida (8.5.12, 8.4.27, 8.3.36 ou 8.2.35) ou para o pacote corrigido da sua distribuição Linux. O PHP afirma que não existem mitigações completas e que atualizar é a única escolha segura.
  2. Depois de atualizar, reinicie o PHP-FPM, o Apache e quaisquer workers PHP de longa duração para que carreguem o código corrigido. Um serviço que foi iniciado antes da atualização continua executando o código antigo.
  3. Se o PHP veio de um pacote da distribuição, confira a versão completa do pacote, incluindo a parte depois do primeiro hífen. As distribuições podem incluir a correção sem alterar a primeira parte do número.
  4. Se não for possível atualizar imediatamente, veja as mitigações abaixo. O PHP afirma que elas reduzem a exposição a caminhos de ataque específicos, mas não tornam uma instalação segura.

O que aconteceu

Em 21 de outubro de 2026, o PHP lançou as versões 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Elas corrigem duas vulnerabilidades críticas, ambas com nota CVSS v4.0 9.2.

CVE-2026-109618, chamada de RCE via OOM corruption: o tratamento de falta de memória pode interromper o PHP enquanto os dados internos da requisição estão apenas parcialmente inicializados, e a limpeza da requisição pode então tratar os dados inválidos como se fossem válidos.

CVE-2026-109619, chamada de RCE via stale global state: o estado interno pertencente a uma requisição pode sobreviver depois que a memória que o sustentava foi liberada, e uma requisição posterior tratada pelo mesmo worker pode usar esse estado obsoleto.

  • CVE-2026-109618 · CVSS 4.0 9.2
  • CVE-2026-109619 · CVSS 4.0 9.2

Como a IA esteve envolvida

Segundo o The Next Web, a empresa de segurança Calif encontrou o primeiro bug em agosto com a ajuda de um modelo da OpenAI, durante uma auditoria do código-fonte do PHP financiada pela OpenAI. A Wiz disse que encontrou as falhas de forma independente, semanas depois, usando ferramentas de IA, entre elas os modelos Gemini do Google.

O site php2shell.com atribui a pesquisa à Wiz Research, ao OpenAI Codex Security e à Calif. A Calif disse que usou modelos disponíveis ao público em geral e que conhecer a história do PHP importou mais do que o modelo.

O mesmo artigo relata que a Cloudflare ativou regras de WAF para seus clientes cerca de nove horas antes da divulgação e que, em seguida, um exploit de prova de conceito circulou na internet. O site php2shell.com diz que uma regra de WAF ou CDN não deve ser tratada como substituta da atualização do PHP.

Linha do tempo

  1. O PHP anuncia uma próxima versão de segurança crítica, prevista para 21 de outubro às 14:00 UTC.
  2. O PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35 são lançados com um comunicado de segurança, e o Ubuntu publica o USN-8948-1.
  3. O PHP publica um comunicado informativo sobre session.upload_progress.enabled, referente a mais um vetor, improvável, registrado como CVE-2026-115560.

Quem é afetado

O PHP afirma que todas as instalações de PHP que atendem requisições web estão em risco, incluindo PHP-FPM, Apache com mod_php, php-cgi, FrankenPHP e LiteSpeed. Considera o risco maior para o mod_php, em que uma requisição sem autenticação pode acionar o ataque antes de qualquer código da aplicação ser executado.

Os comunicados do GitHub listam como afetadas as versões anteriores a 8.2.35, 8.3.36, 8.4.27 e 8.5.12. O site php2shell.com, apresentado como mantido pela Wiz, diz que as versões afetadas remontam ao PHP 5.4.

O PHP 8.1 e as versões anteriores não recebem mais atualizações do projeto PHP. Algumas distribuições e fornecedores de LTS oferecem correções portadas (backports), e o PHP disponibilizou backports mínimos do código-fonte para o PHP 7.4, 8.0 e 8.1, para quem compila a partir do código-fonte.

Versões corrigidas

Uma versão igual ou superior à versão corrigida do seu ramo tem a correção. Um pacote de distribuição é corrigido pela versão do pacote, por isso use a segunda tabela para Ubuntu e Debian.

Versões do próprio PHP

RamoPrimeira versão corrigida
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35

Pacotes do Ubuntu e do Debian

DistribuiçãoPacoteVersão corrigida do pacoteComunicado
Ubuntu 26.10php8.58.5.9-0ubuntu2.1USN-8948-1
Ubuntu 26.04 LTSphp8.58.5.4-0ubuntu1.5USN-8948-1
Ubuntu 24.04 LTSphp8.38.3.6-0ubuntu0.24.04.13USN-8948-1
Ubuntu 22.04 LTSphp8.18.1.2-1ubuntu2.28USN-8948-1
Debian 12 (bookworm)php8.28.2.35-1~deb12u1DLA-4848-1
Debian 13 (trixie)php8.48.4.27-1~deb13u1DSA-6574-1

As tabelas mostram apenas o que os comunicados oficiais listam. Para outras distribuições, consulte o comunicado de segurança do seu fornecedor.

Verifique o seu PHP

Escolha de onde vem o seu PHP, cole o texto da versão e a ferramenta o compara com as versões corrigidas acima. Ela avalia apenas o texto que você colar. Não consegue ver qual versão está em execução, portanto confirme também que o serviço foi reiniciado depois da atualização.

Comandos que mostram a versão

  • php -v
  • dpkg -l 'php*' | grep ^ii
  • apt-cache policy php8.3-fpm | grep Installed

Tudo é executado no seu navegador. O texto que você cola não é enviado.

Se não for possível atualizar imediatamente

O PHP lista estas medidas. Afirma que elas reduzem a exposição a caminhos de ataque específicos, mas não tornam uma instalação segura, e que somente a atualização é uma solução completa.

CVE-2026-109618

  • Defina memory_limit=-1, de preferência de uma forma que as aplicações não possam substituir, como php_admin_value no pool do FPM ou na configuração do Apache. Uma falha de alocação subjacente ainda pode chegar ao caminho vulnerável.
  • Defina um post_max_size baixo: 8M para aplicações que não precisam de envio de arquivos e 32M se os envios forem necessários. Mantenha upload_max_filesize abaixo de post_max_size.
  • Aplique limites no servidor web ou no proxy para o tamanho da requisição decodificada, o número de campos de entrada, o número de partes multipart, o número de cabeçalhos e a profundidade de aninhamento.
  • Use um limite de contêiner ou de cgroup como fronteira de disponibilidade. Não use RLIMIT_AS nem RLIMIT_DATA, porque eles podem causar a falha de alocação vulnerável.

CVE-2026-109619

  • Defina session.upload_progress.enabled=0 no php.ini, em um pool do FPM ou na configuração do servidor, e reinicie todos os workers. Não conte com ini_set() nem com um arquivo .user.ini do FPM.
  • No PHP 8.5, defina fatal_error_backtraces=0 e reinicie todos os workers.
  • Remova configurações inválidas ou obsoletas aplicadas por requisição que emitem diagnósticos antes da inicialização. Ocultar os diagnósticos não ajuda.
  • Corrija os erros fatais e os tempos limite de execução que um atacante consegue provocar.

O comunicado informativo de 23 de outubro

O PHP sugere definir session.upload_progress.enabled=0 até a próxima versão regular de correção de bugs, para proteger totalmente contra mais um vetor improvável de execução remota de código. Se você já aplicou isso a partir do comunicado de 21 de outubro, mantenha a configuração.

O PHP diz que o problema só pode ocorrer sob uma combinação incomum: uma aplicação define session.serialize_handler como php_binary ou php_serialize na configuração, muda para php em tempo de execução com ini_set() antes de session_start(), e o progresso de envio de sessão ainda está ativado. O PHP publicará um comunicado completo para o CVE-2026-115560 com a próxima versão.

O que esta página não faz

  • Não é um comunicado oficial e não fornece detalhes de exploração. Os comunicados e avisos oficiais abaixo são a referência.
  • Não consegue dizer se um sistema foi atacado. O site php2shell.com observa que a ausência de atividade suspeita não prova que um sistema não é afetado.
  • A exposição depende da versão, da configuração e de cada vulnerabilidade. As mitigações podem afetar o funcionamento de uma aplicação.

Fontes