~/ / 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
- 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.
- 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.
- 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.
- 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
- O PHP anuncia uma próxima versão de segurança crítica, prevista para 21 de outubro às 14:00 UTC.
- 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.
- 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
| Ramo | Primeira versão corrigida |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
Pacotes do Ubuntu e do Debian
| Distribuição | Pacote | Versão corrigida do pacote | Comunicado |
|---|---|---|---|
| Ubuntu 26.10 | php8.5 | 8.5.9-0ubuntu2.1 | USN-8948-1 |
| Ubuntu 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 | USN-8948-1 |
| Ubuntu 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 | USN-8948-1 |
| Ubuntu 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 | USN-8948-1 |
| Debian 12 (bookworm) | php8.2 | 8.2.35-1~deb12u1 | DLA-4848-1 |
| Debian 13 (trixie) | php8.4 | 8.4.27-1~deb13u1 | DSA-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 -vdpkg -l 'php*' | grep ^iiapt-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
- PHP: comunicado de segurança de 21 de outubro de 2026
- GitHub: GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- GitHub: GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- Ubuntu: USN-8948-1
- Debian: rastreador de segurança para o CVE-2026-109618
- PHP: comunicado informativo de 23 de outubro de 2026
- php2shell.com
- The Next Web: PHP rushes out emergency patches