1. Resumo

Em 21/10/2026, o time de segurança do PHP divulgou duas vulnerabilidades críticas de execução remota de código (RCE):

  • CVE-2026-109618: "RCE via OOM corruption".
  • CVE-2026-109619: "RCE via stale global state".

Ambas têm CVSS v4.0 9.2 (crítico) e não exigem autenticação. A complexidade de ataque é classificada como alta e há pré-requisitos.

Segundo o php.net, o problema atinge instalações PHP que atendem requests web (por exemplo PHP-FPM, Apache mod_php, php-cgi, FrankenPHP e LiteSpeed).

O que fazer: atualizar o PHP para uma versão corrigida (ou para o pacote da sua distribuição que já inclua a correção). As mitigações temporárias da seção 6 reduzem o risco, mas não substituem a atualização.

2. Links oficiais

3. Versões afetadas e corrigidas

RamoAfetadoCorrigido em
PHP 8.2< 8.2.358.2.35
PHP 8.3< 8.3.368.3.36
PHP 8.4< 8.4.278.4.27
PHP 8.5< 8.5.128.5.12

Nota sobre 7.4, 8.0 e 8.1: para esses ramos, o time do PHP publicou apenas backports mínimos em código-fonte, sem release oficial. Quem os usa precisa compilar com o backport ou obter a correção de um fornecedor de suporte estendido (LTS). O ideal é migrar para um ramo com release corrigida.

4. Como checar a versão

Linha de comando

php -v

Atenção: a CLI pode ser uma versão diferente da usada pelo servidor web (FPM, Apache). Confira também o binário do serviço, por exemplo php-fpm8.3 -v.

phpinfo(), com cuidado

Se precisar ver a versão que o servidor web realmente usa, crie temporariamente um arquivo que chame phpinfo(), acesse-o e apague-o logo depois. Nunca deixe uma página de phpinfo() exposta publicamente: ela revela configuração interna do servidor. Se possível, restrinja o acesso por IP enquanto ela existir.

Pacote da distribuição (Debian/Ubuntu)

dpkg -l | grep php
apt-cache policy php8.3     # troque 8.3 pelo seu ramo

Changelog do pacote: o passo mais importante em distros

As distribuições costumam aplicar a correção (backport) sem mudar o número da versão upstream. Então php -v pode mostrar uma versão "menor que a corrigida" e o pacote já estar protegido. Verifique no changelog:

apt changelog php8.3-common | grep -i -E "CVE-2026-109618|CVE-2026-109619"

Se o CVE aparece como corrigido no changelog do pacote instalado, a correção está aplicada. Se não aparece, confira o aviso de segurança da sua distribuição. Em distros, vale o aviso de segurança da distro, não só o número da versão.

5. Como atualizar

Ubuntu / Debian

sudo apt update
sudo apt upgrade
  • Use os repositórios oficiais e acompanhe os avisos de segurança da sua distribuição para saber quando o pacote corrigido estiver disponível.
  • PPA ondrej/php e packages.sury.org são repositórios de terceiros. Se você os usa, a atualização depende do que eles publicarem; avalie se confia neles.
  • Depois de atualizar, reinicie o serviço (por exemplo php8.3-fpm ou o Apache) e confirme a versão/changelog novamente.

cPanel / EasyApache 4

  • Atualize os pacotes do EasyApache 4 (ea-php*) pelo WHM ou pelo gerenciador de pacotes do servidor.
  • No MultiPHP Manager, confira qual versão cada domínio usa e mova os sites para um ramo que receba a correção.
  • Se o seu ramo é 7.4, 8.0 ou 8.1, veja a nota da seção 3 e consulte seu fornecedor.

Docker

  • Use a imagem oficial php:8.x. As tags corrigidas (8.2.35, 8.3.36, 8.4.27, 8.5.12 e variantes) já estão no Docker Hub (conferido em 21/10/2026). Prefira fixar a tag exata, como php:8.4.27-fpm.
  • Atualize e refaça a imagem sem cache:
docker pull php:8.4.27-fpm   # ajuste ao seu ramo/variante
docker build --no-cache -t minha-app:novo .
  • Faça o redeploy dos contêineres com a imagem nova e confirme a versão dentro do contêiner (php -v).
  • Imagens antigas já em execução não se atualizam sozinhas.

Hospedagem compartilhada

  1. No painel, verifique a versão do PHP e, se houver seletor, troque para um ramo corrigido (8.2, 8.3, 8.4 ou 8.5).
  2. Se o provedor ainda não oferece a versão corrigida, envie uma mensagem ao suporte. Modelo:

Olá, equipe de suporte.
Foram divulgadas as vulnerabilidades CVE-2026-109618 e CVE-2026-109619 no PHP (aviso em https://www.php.net/). Gostaria de saber: (1) qual versão do PHP está ativa na minha conta/domínio; (2) se os servidores já receberam a versão corrigida (8.2.35, 8.3.36, 8.4.27 ou 8.5.12) ou o patch equivalente da distribuição; (3) previsão para a atualização, caso ainda não tenha sido feita.
Obrigado.

6. Mitigações temporárias

Fonte: as mitigações abaixo são as que constam no aviso do php.net (https://www.php.net/). Elas são incompletas: somente a atualização resolve.

  • memory_limit=-1 definido via php_admin_value, (no pool do FPM ou na configuração do Apache), de modo que a aplicação não possa sobrescrever. Confira se nenhum pool, diretório ou aplicação volta a definir um limite finito. Segundo o aviso, isso remove a falha controlável do limite de memória, mas uma falha de alocação subjacente ainda pode chegar ao caminho vulnerável.
  • post_max_size em 8M (ou 32M, se você realmente precisa de uploads), com upload_max_filesize menor que post_max_size.
  • Limites no proxy / servidor web para o tamanho da requisição decodificada, a quantidade de campos de entrada, as partes multipart, a quantidade de cabeçalhos e a profundidade de aninhamento, inclusive em requisições sem Content-Length utilizável.
  • Limite de memória por cgroup/contêiner, como barreira de disponibilidade, de preferência com uma política que mate só o worker afetado. Não use RLIMIT_AS nem RLIMIT_DATA.
  • session.upload_progress.enabled=0, definido em php.ini, na configuração do pool ou do servidor, e reiniciando os workers. Não funciona via ini_set nem via .user.ini.
  • PHP 8.5: fatal_error_backtraces=0 e reiniciar todos os workers (bloqueia só o caminho confirmado de backtrace fatal).
  • Remover configurações INI inválidas ou obsoletas aplicadas por request que emitam diagnósticos antes da inicialização. Esconder diagnósticos com error_reporting, display_errors ou @ não ajuda.
  • Corrigir erros fatais e timeouts de execução que um atacante consiga provocar, inclusive em callbacks, no processamento de upload/importação e na limpeza.
  • session.upload_progress.enabled=0 bloqueia os caminhos de sessão confirmados, mas não outras variantes (php.net).

Lembrete: nada disso substitui a atualização.

7. Checklist final

Cairo Labs · 21/10/2026
Não temos afiliação com o PHP nem com The PHP Group.