Estudo da Imperva Threat Research detalha duas vulnerabilidades críticas no PHP que podem permitir execução remota de código, exposição de dados e comprometimento de servidores
Pesquisadores da Wiz, OpenAI e Calif divulgaram o PHP2Shell (CVE-2026-109618 e CVE-2026-109619), um conjunto de vulnerabilidades críticas de segurança de memória no ambiente de execução do PHP. Em análise técnica, a Imperva Threat Research detalha cinco técnicas de exploração que envolvem o gerenciamento de sessões, o OPcache e o tratamento de erros fatais. As falhas podem permitir a execução remota de código sem autenticação prévia, além de provocar interrupções de processos e exposição de informações sensíveis armazenadas na memória dos servidores.
PHP2Shell: Quando o PHP fica sem memória no momento errado. Por Imperva Threat Research
Por Nadav Avital e Bar Menachem | Imperva Threat Research
Uma família de vulnerabilidades de segurança de memória no ambiente de execução do PHP, com impactos que vão desde falhas em processos e exposição de dados até a execução remota de código sem autenticação prévia.
Pesquisadores da Wiz, OpenAI e Calif divulgaram conjuntamente o PHP2Shell (CVE-2026-109618 e CVE-2026-109619), um conjunto de vulnerabilidades de segurança de memória que envolvem o gerenciamento de sessões do PHP, o cache de classes do OPcache e a geração de rastreamentos de erros fatais.
A exploração bem-sucedida pode levar à execução remota de código no ambiente PHP afetado, sem autenticação ou interação do usuário. Outros efeitos demonstrados incluem falhas em processos de trabalho (workers), leitura arbitrária de arquivos e exposição da memória do servidor.
Quando pensamos em vulnerabilidades de corrupção de memória, geralmente imaginamos falhas ocultas em códigos complexos de aplicações. O PHP2Shell é diferente: as vulnerabilidades residem no próprio ambiente de execução do PHP, e várias delas podem ser exploradas sem que a aplicação em si faça nada de errado.
Em muitos casos, o PHP2Shell explora o momento em que o PHP responde ao esgotamento de memória. O processamento é interrompido, mas o estado interno nem sempre é limpo de maneira consistente.
Ponteiros ou entradas de cache remanescentes podem se tornar acessíveis durante o processamento subsequente, transformando uma operação malsucedida em uma oportunidade de exploração. Nos ataques relacionados a sessões demonstrados pelos pesquisadores, até mesmo um endpoint que apenas retorna “OK” pode ser afetado. O processamento vulnerável ocorre antes da execução de uma única linha de código da aplicação.
Acredita-se que o PHP2Shell afete versões do PHP desde a 5.4.0, embora nem todas as versões tenham sido testadas e verificadas individualmente. Como o PHP é utilizado por mais de 69% dos sites cuja linguagem de programação do lado do servidor é conhecida, a exposição potencial é significativa.
As organizações devem consultar os avisos de segurança relevantes para identificar as versões comprovadamente afetadas e aplicar as correções disponibilizadas pelo fornecedor o mais rápido possível.
Visão geral das CVEs
O PHP2Shell abrange duas vulnerabilidades relatadas, relacionadas ao tratamento de encerramentos anormais de requisições pelo PHP. Ambas são classificadas como CWE-824: Acesso a Ponteiro Não Inicializado, possuem pontuação CVSS v4.0 de 9,2 (Crítica) e podem levar à execução remota de código sem autenticação ou interação do usuário.
CVE-2026-109618: Execução remota de código por esgotamento de memória
O PHP utiliza longjmp() para interromper o processamento de requisições quando ocorre um erro de falta de memória (out-of-memory, OOM). Alguns contextos de execução não tratam adequadamente essa interrupção, deixando a memória da requisição em um estado não inicializado.
A limpeza subsequente da requisição pode ler essa memória ou tomar decisões de fluxo com base em seu conteúdo. Diferentes estratégias para provocar o esgotamento de memória podem atingir essa condição de maneira consistente e levar à execução remota de código.
Reportada por: Calif, Wiz, OpenAI e Quarkslab.
CVE-2026-109619: Execução remota de código por meio de erros fatais
O PHP também utiliza longjmp() para interromper o processamento de requisições após erros fatais. Alguns contextos de execução deixam um estado global apontando para uma região de memória liberada ao final da requisição.
Requisições subsequentes podem ler esse estado inválido ou tomar decisões de fluxo com base nele, potencialmente levando à execução remota de código por meio de diferentes estratégias de acionamento.
Reportada por: Wiz, Calif e OpenAI.
Vale ressaltar que a complexidade do ataque em ambas as vulnerabilidades é alta, o que significa que o invasor precisa superar uma proteção de segurança incorporada para que a exploração funcione.
Acionar a falha é muito mais fácil do que transformá-la em execução de código. O esgotamento de memória pode fazer com que o PHP mantenha um ponteiro para uma região de memória já liberada.
Uma requisição posterior precisa alcançar o mesmo processo de trabalho (worker) do Apache e posicionar dados cuidadosamente estruturados nessa região de memória liberada.
Se o momento ou o posicionamento forem diferentes, o processo poderá falhar ou responder normalmente, em vez de executar um comando.
O ponto em comum: interrupções de execução deixam estados internos obsoletos
O PHP trata determinadas condições fatais, incluindo a ultrapassagem do limite de memória configurado (memory_limit), por meio de um mecanismo interno conhecido como bailout.
Em vez de concluir normalmente a operação em andamento, o PHP a interrompe e transfere o controle para um ponto responsável pelo tratamento de erros.
O problema surge quando essa interrupção ocorre depois que o PHP disponibilizou um ponteiro ou alocou uma posição no cache, mas antes que os procedimentos correspondentes de limpeza ou de registro da conclusão da operação sejam executados.
O resultado é um estado parcialmente inicializado, ou obsoleto, que permanece acessível mesmo após a falha da operação.
Em ambientes baseados em processos de trabalho, incluindo a arquitetura Apache prefork, um mesmo processo pode atender a múltiplas requisições.
Uma requisição subsequente direcionada ao mesmo processo pode, portanto, encontrar um ponteiro para uma região de memória que já foi liberada por uma requisição anterior.
A descoberta relacionada ao OPcache envolve um problema semelhante, mas distinto: uma posição abandonada no cache de classes, armazenada em memória compartilhada.
O estado local do processo de trabalho e o estado do cache compartilhado possuem tempos de vida diferentes. Por isso, as condições necessárias para explorar cada descoberta devem ser avaliadas separadamente.
Atingir o ambiente de execução antes que o código da aplicação seja executado
Três das cinco técnicas de exploração demonstradas utilizam o recurso de acompanhamento do progresso de upload associado às sessões do PHP como mecanismo remoto de acionamento.
Essa funcionalidade atualiza o estado da sessão enquanto o PHP analisa o corpo de uma requisição multipart, antes que a aplicação comece a ser executada.
Requisições multipart especialmente elaboradas podem, portanto, influenciar o processamento da sessão e o consumo de memória nessa etapa anterior à execução da aplicação.
Nesses ataques, o esgotamento de memória interrompe o processamento da sessão em um momento no qual a limpeza ainda está incompleta.
O processamento posterior no mesmo processo de trabalho encontra o estado obsoleto, resultando em falha do processo ou exposição de memória.
Isso explica por que uma aplicação não precisa necessariamente implementar uma lógica de negócios vulnerável para estar exposta.
No entanto, isso não significa que todas as descobertas afetem todos os endpoints PHP: os recursos habilitados, o comportamento da aplicação, o direcionamento das requisições aos processos de trabalho e a configuração do ambiente continuam sendo fatores relevantes.
Técnicas de exploração
Decodificador de sessão: uso de memória após liberação (use-after-free)
A descoberta relacionada ao decodificador de sessão envolve estruturas internas de controle utilizadas durante a desserialização da sessão.
O PHP torna essas estruturas acessíveis por meio de variáveis globais do módulo, mas o esgotamento de memória pode interromper o processamento antes que elas sejam devidamente limpas.
O ataque primeiro cria uma sessão de grande tamanho por meio do mecanismo de acompanhamento do progresso de upload e, em seguida, provoca o esgotamento de memória durante a decodificação da sessão.
A limpeza da requisição libera a memória subjacente, mas deixa estruturas de controle obsoletas acessíveis.
Uma requisição subsequente direcionada ao mesmo processo de trabalho utiliza esse contexto pendente, resultando em acesso inválido à memória e falha do processo.
OPcache: ponteiro obsoleto no cache de classes
A descoberta relacionada ao OPcache afeta a persistência das informações compiladas de classes na memória compartilhada.
Uma interrupção por falta de memória, em um ponto específico, deixa uma posição do cache de classes alocada, mas ainda não disponibilizada.
O ataque manipula a reutilização posterior do cache e insere estruturas especialmente elaboradas na memória da requisição.
Uma consulta a classes que utiliza uma referência obsoleta passa, então, a interpretar dados controlados pelo invasor como estruturas internas do PHP, influenciando a resolução de constantes de classe.
No fluxo de uma aplicação, uma operação de arquivo que utiliza a constante afetada é redirecionada para um caminho selecionado pelo invasor.
Isso resulta na leitura arbitrária de arquivos dentro das permissões de acesso do processo de trabalho.
As consequências práticas dependem dos arquivos que esse processo consegue ler.
Arquivos de configuração de aplicações, credenciais de banco de dados, chaves de API e outros segredos podem ser expostos, mas a descoberta não concede automaticamente acesso a todos os arquivos do servidor.
Ponteiro obsoleto para dados do módulo de sessão: uso de memória após liberação
Essa descoberta afeta o estado do manipulador de sessão referenciado por um ponteiro interno do PHP.
O esgotamento de memória durante o gerenciamento da sessão faz com que o ponteiro continue referenciando uma região de memória já liberada.
Uma requisição subsequente no mesmo processo de trabalho influencia as alocações posteriores de memória e, mais adiante, o PHP acessa o conteúdo apontado por esse ponteiro obsoleto.
Esse tipo de ataque pode provocar a falha de um processo de trabalho, demonstrando que um estado de sessão inválido pode permanecer acessível entre requisições.
Ponteiro obsoleto de ID de sessão: exposição de memória
A descoberta relacionada ao identificador de sessão segue um padrão semelhante, mas resulta na exposição de informações, em vez de uma falha do processo.
Depois que o esgotamento de memória deixa o estado do identificador de sessão obsoleto, uma região de memória influenciada pelo invasor é interpretada como uma string com comprimento excessivo.
O PHP então retorna o valor resultante por meio de um cabeçalho de resposta Set-Cookie: PHPSESSID.
Um ataque pode expor aproximadamente 67 KB de memória do processo.
Seu conteúdo depende do estado do processo de trabalho no momento da exploração e pode incluir dados internos do ambiente de execução ou informações sensíveis processadas pela aplicação.
Rastreamento de erros fatais: uso de memória após liberação
Com o rastreamento de erros fatais habilitado, um erro fatal pode desencadear o uso de memória após sua liberação (use-after-free) durante a geração do rastreamento da pilha de execução.
O efeito é a falha do processo de trabalho.
Essa descoberta deve ser diferenciada dos ataques que utilizam o recurso de acompanhamento do progresso de upload de sessões.
Ela exige a configuração correspondente de rastreamento da pilha e um evento que provoque erro fatal. Não compartilha os mesmos pré-requisitos remotos das três descobertas relacionadas a sessões.
Da corrupção de memória à execução remota de código
O impacto geral do PHP2Shell vai além da interrupção de serviços e da exposição de dados.
A exploração bem-sucedida pode levar à execução remota de código no ambiente PHP afetado.
As descobertas individuais demonstram diferentes maneiras pelas quais um estado inválido do ambiente de execução pode ser acessado ou influenciado.
Seus efeitos isolados devem ser diferenciados do resultado completo de execução de código.
A execução de código ocorre dentro do contexto de segurança do processo comprometido.
Isso não implica automaticamente acesso com privilégios de administrador (root), mas pode permitir que um invasor acesse dados da aplicação, modifique recursos disponíveis para esse processo e procure outras formas de ampliar o comprometimento.
Mitigação e detecção
A principal medida corretiva é aplicar as correções do PHP confirmadas pelo fornecedor.
As organizações devem consultar os avisos de segurança relevantes para verificar os intervalos de versões comprovadamente afetadas, as versões corrigidas e as orientações específicas para cada vulnerabilidade.
Nos casos em que a aplicação das correções seja adiada, as organizações devem avaliar medidas temporárias de redução da exposição:
- Desative os recursos relevantes do PHP sempre que possível. Após testes de compatibilidade e desempenho, considere aplicar as seguintes configurações no arquivo
php.iniativo. Essas medidas temporárias têm como alvo os recursos utilizados pelas técnicas de exploração demonstradas e não devem ser consideradas soluções completas para nenhuma das duas CVEs.
opcache.enable = 0
session.upload_progress.enabled = 0Essas configurações desativam, respectivamente, o OPcache e o acompanhamento do progresso de upload de sessões.
Desativar o acompanhamento do progresso de upload de sessões elimina o mecanismo de acionamento descrito para três das cinco técnicas de exploração relatadas.
Essas medidas não substituem a aplicação das correções nem garantem que o ambiente esteja totalmente protegido.
- Revise a configuração de rastreamento de erros fatais. Verifique se a configuração relevante está habilitada e siga as orientações específicas para a vulnerabilidade.
- Restrinja a exposição sempre que possível. Limite o acesso aos serviços afetados enquanto as medidas corretivas são avaliadas e implementadas.
- Aplique o princípio do menor privilégio. Restrinja o acesso do processo PHP a arquivos, credenciais e serviços conectados para reduzir as consequências de um possível comprometimento.
As equipes de segurança devem correlacionar atividades suspeitas em requisições com erros de esgotamento de memória do PHP e falhas em processos de trabalho.
Entre os indícios que justificam investigação estão payloads multipart excepcionalmente grandes, quantidades excessivas de campos, parâmetros anômalos relacionados a sessões e valores inesperadamente grandes de PHPSESSID nas respostas.
Caso haja suspeita de exploração, a equipe de resposta a incidentes deve avaliar tanto a possibilidade de execução de código quanto a exposição de dados.
É necessário analisar processos filhos inesperados, alterações em arquivos da aplicação, mecanismos de persistência, conexões de saída incomuns e possível exposição de credenciais.
Resposta da Imperva e proteção dos clientes
Os pesquisadores compartilharam detalhes das vulnerabilidades de forma confidencial com a Imperva antes da divulgação pública, permitindo que a empresa verificasse suas proteções e começasse a monitorar o tráfego dos clientes antes do anúncio.
Durante esse período de monitoramento anterior à divulgação, a Imperva não observou tráfego correspondente aos padrões de exploração do PHP2Shell que estavam sendo monitorados.
O Web Application Firewall (WAF) da Imperva oferece um controle compensatório ao inspecionar padrões de requisição e resposta associados às explorações demonstradas, incluindo payloads multipart anômalos, campos repetidos relacionados a sessões, cabeçalhos de resposta anormais e atividades suspeitas de acompanhamento do progresso de upload de sessões.
As soluções WAF da Imperva fornecem uma correção virtual às organizações. Os clientes do Cloud WAF já contam com proteção contra essa vulnerabilidade sem necessidade de configuração adicional. Os clientes do Elastic WAF recebem a mesma proteção após uma atualização de software. Os clientes do WAF Gateway ficam protegidos após uma atualização de software e uma atualização do conteúdo de segurança do ADC.
Imagem original da Imperva: impervashield
Para obter mais detalhes, consulte as respectivas notas de versão:
WAF GW RN V14.7 LTS:
https://docs-cybersec.thalesgroup.com/bundle/v14.7-waf-release-notes/page/83979.htm
WAF GW RN V15.5 LTS:
https://docs-cybersec.thalesgroup.com/bundle/v15.5-waf-release-notes/page/87153.htm
Elastic WAF 2.2.1 RN:
https://docs-cybersec.thalesgroup.com/bundle/elastic-waf/page/v2-2-1.htm
A Imperva disponibiliza uma página de testes na qual os clientes podem inserir a URL de seus sites para receber uma avaliação inicial.
O resultado é preliminar e pode exigir análises adicionais para confirmar a exposição.
A equipe de pesquisa de ameaças da Imperva continua monitorando o tráfego para determinar se são necessárias proteções adicionais.
Conclusão
O PHP2Shell evidencia como o tratamento de condições excepcionais por um ambiente de execução pode resultar em uma falha de segurança.
Quando o processamento é interrompido no momento errado, ponteiros obsoletos e estados incompletos de cache podem permanecer acessíveis mesmo após o encerramento da operação que os criou.
Os impactos resultantes variam desde falhas em processos de trabalho e exposição de dados sensíveis até a execução remota de código sem autenticação prévia.
As organizações devem identificar as implementações afetadas, aplicar as correções confirmadas pelo fornecedor, reduzir a exposição desnecessária e investigar atividades suspeitas em busca de sinais tanto de acesso indevido a dados quanto de execução de código.
Crédito editorial: Artigo de Nadav Avital e Bar Menachem, da Imperva Threat Research, publicado originalmente em 21 de outubro de 2026. Tradução para o português feita pelo Crypto ID, caso encontre algum erro, aponte para redacao@cryptoid.com.br.
Fonte original: https://www.imperva.com/blog/php2shell-vulnerability-updates/
Proteção de dados e fraude: por que é preciso unir ainda mais essas duas agendas. Por Abílio Branco
Fraudes Digitais: O Elo Entre Vulnerabilidades Técnicas e Comportamento Humano. Por Abílio Branco
Sobre a Thales

A Thales (Euronext Paris: HO) é líder global em tecnologias avançadas para os setores de Defesa, Aeroespacial, Cibersegurança e Digital. Seu portfólio de produtos e serviços inovadores ajuda a enfrentar diversos grandes desafios: soberania, segurança, sustentabilidade e inclusão.
O Grupo investe 4.5 bilhões de euros por ano em Pesquisa e Desenvolvimento em áreas-chave, especialmente para ambientes críticos, como Inteligência Artificial, Cibersegurança e Tecnologias Quânticas e de Nuvem.
A Thales possui mais de 85 mil colaboradores em 65 países. Em 2025, o Grupo registrou vendas de 22,1 bilhões de euros.
Leia outros artigos da Thales aqui no Crypto ID!
Sobre Thales

A Thales (Euronext Paris: HO) é líder global em tecnologias avançadas para os setores de Defesa, Aeroespacial, Cibersegurança e Digital. Seu portfólio de produtos e serviços inovadores ajuda a enfrentar diversos grandes desafios: soberania, segurança, sustentabilidade e inclusão.
O Grupo investe 4.5 bilhões de euros por ano em Pesquisa e Desenvolvimento em áreas-chave, especialmente para ambientes críticos, como Inteligência Artificial, Cibersegurança e Tecnologias Quânticas e de Nuvem.
A Thales possui mais de 85 mil colaboradores em 65 países. Em 2025, o Grupo registrou vendas de 22,1 bilhões de euros.
Leia outros artigos da Thales aqui!
Sobre a Thales

A Thales (Euronext Paris: HO) é líder global em tecnologias avançadas para os setores de Defesa, Aeroespacial, Cibersegurança e Digital. Seu portfólio de produtos e serviços inovadores ajuda a enfrentar diversos grandes desafios: soberania, segurança, sustentabilidade e inclusão.
O Grupo investe 4.5 bilhões de euros por ano em Pesquisa e Desenvolvimento em áreas-chave, especialmente para ambientes críticos, como Inteligência Artificial, Cibersegurança e Tecnologias Quânticas e de Nuvem.
A Thales possui mais de 85 mil colaboradores em 65 países. Em 2025, o Grupo registrou vendas de 22,1 bilhões de euros.
Leia outros artigos da Thales aqui no Crypto ID!
Sobre Thales

A Thales (Euronext Paris: HO) é líder global em tecnologias avançadas para os setores de Defesa, Aeroespacial, Cibersegurança e Digital. Seu portfólio de produtos e serviços inovadores ajuda a enfrentar diversos grandes desafios: soberania, segurança, sustentabilidade e inclusão.
O Grupo investe 4.5 bilhões de euros por ano em Pesquisa e Desenvolvimento em áreas-chave, especialmente para ambientes críticos, como Inteligência Artificial, Cibersegurança e Tecnologias Quânticas e de Nuvem.
A Thales possui mais de 85 mil colaboradores em 65 países. Em 2025, o Grupo registrou vendas de 22,1 bilhões de euros.
Leia outros artigos da Thales aqui!
Sobre Thales

A Thales (Euronext Paris: HO) é líder global em tecnologias avançadas para os setores de Defesa, Aeroespacial, Cibersegurança e Digital. Seu portfólio de produtos e serviços inovadores ajuda a enfrentar diversos grandes desafios: soberania, segurança, sustentabilidade e inclusão.
O Grupo investe 4.5 bilhões de euros por ano em Pesquisa e Desenvolvimento em áreas-chave, especialmente para ambientes críticos, como Inteligência Artificial, Cibersegurança e Tecnologias Quânticas e de Nuvem.
A Thales possui mais de 85 mil colaboradores em 65 países. Em 2025, o Grupo registrou vendas de 22,1 bilhões de euros.
Leia outros artigos da Thales aqui!
Conheça a coluna Cibersegurança.

Conselheiro de administração ou CISO? Leia também: Orçamento 2027: guia da NACD ensina CISOs a falar a língua do conselho.








