Infotécnica INFOTÉCNICA
Home Sobre
Soluções Cloud
Datacenter Backup & Replicação E-mail & Colaboração Monitoramento
Segmentos
Saúde Comércio & Varejo Finanças
Serviços & Suporte Produtos Diferenciais Contato
WhatsApp
Guia · 23 minutos

Falhas críticas do PHP:
o que conferir nos seus servidores hoje.

Em 21/10/2026 o projeto PHP corrigiu duas falhas críticas, a CVE-2026-109618 e a CVE-2026-109619, que ganharam o apelido de PHP2Shell. Com elas, quem ataca pode rodar código no servidor pela rede, sem login. Elas pegam todo PHP que atende páginas web, com qualquer servidor web na frente. O php.net, site oficial do projeto, diz que nenhuma medida de contorno resolve por inteiro e que atualizar é a única escolha segura.

Versões, pacotes e avisos mudam rápido: confira nas fontes do fim da página antes de agir.

Por onde começar

A ordem que a gente seguiria
pra atualizar.

1

O que está exposto pra internet. Primeiro o Apache com mod_php, onde o ataque roda antes de qualquer código da aplicação, e o Captive Portal do pfSense, a tela de login do Wi-Fi de visitantes desse firewall, que por natureza recebe gente de fora.

2

Os sistemas internos que guardam senha de outros sistemas. O Zabbix, sistema de monitoramento, costuma guardar senha de SNMP e de SSH de muitos equipamentos. Sistema com dado de cliente entra aqui também.

3

O resto, na próxima janela de manutenção, sem deixar pra depois dela.

Como estava em 23/10. Amazon, Cloudflare e watchTowr, três empresas de segurança, relataram tentativas de ataque desde que os detalhes vazaram, horas antes da divulgação oficial. O NCSC da Holanda, o centro nacional de cibersegurança de lá, diz que investiga os primeiros sinais de ataque que deu certo. As duas falhas ainda não estavam no catálogo de falhas exploradas da CISA, a agência de cibersegurança dos Estados Unidos. Não espere esse catálogo nem um sinal de ataque pra atualizar.

Antes de ler

Cinco termos que aparecem
o tempo todo.

CVE

O número público de uma falha. É por ele que você procura a correção no aviso de cada fabricante.

PHP-FPM

O serviço que roda o PHP das páginas atrás do Nginx ou do Apache. É um programa separado do php que você chama no terminal.

mod_php

O outro jeito comum de servir PHP: ele roda carregado dentro do próprio Apache.

Backport

Quando a distribuição Linux leva a correção pra versão antiga que ela distribui, sem trocar o número que o PHP mostra.

Worker

Cada processo que atende as requisições. Ele carrega o PHP quando sobe e só larga a versão antiga quando reinicia.

1

Ache todo PHP que a empresa roda

Inclusive o sistema que ninguém abre faz anos.

Atualizar o PHP do sistema que o time conhece é a parte fácil. A falha fica aberta no PHP que a equipe esqueceu que existe: a intranet antiga, o portal do fornecedor, o site que o marketing contratou, o painel web de um equipamento. Por isso o inventário começa pelos endereços, e só depois vai pros servidores.

Endereços
Peça a lista de domínios e subdomínios pra quem cuida do DNS. Cada nome aponta pra um sistema, e cada sistema precisa de alguém que responda por ele. O cabeçalho X-Powered-By às vezes entrega o PHP e a versão, mas costuma estar escondido: se ele não aparecer, o sistema ainda pode rodar PHP.
curl -sI https://intranet.suaempresa.com.br | grep -i x-powered-by
Servidores Linux
Liste os pacotes de PHP instalados, os binários de PHP que existem no disco e os processos que rodam PHP. Servidor com painel de hospedagem costuma ter várias versões lado a lado, e cada site pode usar uma: anote todas.
dpkg -l 'php*' | grep ^ii        # Debian e Ubuntu
rpm -qa 'php*'                   # Red Hat, Alma, Rocky
ls -d /usr/bin/php[0-9]* /opt/plesk/php/*/bin/php /opt/cpanel/ea-php*/root/usr/bin/php /opt/alt/php*/usr/bin/php 2>/dev/null
ps -eo pid,user,args | grep -E 'php|httpd|apache2|lsphp' | grep -v grep
Windows com IIS
Procure os php-cgi.exe do servidor e veja qual deles o IIS chama no mapeamento de handler do FastCGI. Cada pasta é uma instalação.
where /r C:\ php-cgi.exe
"C:\caminho\do\php\php-cgi.exe" -v
Containers
Toda imagem que tem PHP dentro conta, mesmo quando o nome dela não diz php. Pergunte a versão pra cada container que está rodando. No Kubernetes, a mesma pergunta vale pra cada imagem que o cluster roda.
docker ps --format '{{.Names}}  {{.Image}}'
docker exec NOME_DO_CONTAINER php -v || docker exec NOME_DO_CONTAINER php-fpm -v
Equipamentos
Firewall, storage, central telefônica e outros equipamentos com painel de administração web podem trazer PHP embutido. O pfSense é o caso mais comum, e tem seção própria mais abaixo. Pros outros, quem diz se o seu é afetado é o fabricante: procure o aviso dele pelas duas CVEs. O NCSC da Holanda mantém uma lista pública do status de cada produto. Em 23/10 ela mostrava correção pro pfSense, o OPNsense e os pacotes de PHP do Synology, e o PHP embutido do QNAP QTS ainda como vulnerável.
Sistemas prontos
Nextcloud, GLPI, Moodle, Roundcube, phpMyAdmin e WordPress rodam sobre o PHP do servidor, e o que corrige é atualizar esse PHP. Quando o sistema vem em container, quem corrige é a imagem: o Nextcloud AIO trouxe o PHP corrigido na versão 14.4.1, e o GLPI reconstruiu as imagens Docker oficiais.
PHP de terceiros
Na hospedagem do site, no portal do fornecedor e no sistema que uma software house mantém pra vocês, o PHP é de outra empresa. Peça por escrito qual versão roda e se a correção das duas CVEs já foi aplicada. Atualizar WordPress, Joomla, Drupal, Moodle, tema ou plugin não corrige a falha, porque ela está no PHP que roda por baixo.

Feche o inventário numa tabela simples: sistema, onde roda, versão do PHP, de onde vem esse PHP, quem responde por ele e se fica exposto pra internet.

2

Descubra de onde vem o PHP de cada servidor

A correção vem pelo mesmo caminho por onde o PHP chegou.

Dois servidores com PHP 8.3 podem precisar de duas correções diferentes. Se o PHP veio do Ubuntu, a correção vem do Ubuntu. Se veio do painel de hospedagem, vem do painel. Atualizar por outro caminho costuma instalar um segundo PHP do lado, e o site continua no primeiro.

OrigemComo reconhecerQuem publica a correção
Pacote da distribuiçãoO pacote vem do repositório oficial do Debian, Ubuntu, Red Hat, Alma, Rocky ou Alpine. O apt-cache policy ou o dnf info mostra o repositório.A distribuição, no aviso de segurança dela. As versões estão no passo 3.
Repositório do Ondřej SurýNo Debian e no Ubuntu, o apt-cache policy aponta pra packages.sury.org ou pro PPA ondrej/php.O próprio repositório. Em 21/10 saíram 8.2.35, 8.3.36, 8.4.27 e 8.5.12, e correções do 8.1, do 8.0 e do 7.4 com o número antigo: só a revisão do pacote muda (8.1.34-9, 8.0.30-25, 7.4.33-31).
Repositório do RemiNo Red Hat, Alma e Rocky, o dnf info php-fpm mostra um repositório remi, ou o pacote se chama php83-php-fpm, por exemplo.O Remi publicou 8.2.35, 8.3.36, 8.4.27 e 8.5.12. Os pacotes do 8.1, 8.0 e 7.4 também receberam a correção com o número antigo (no EL9, 8.1.34-6, 8.0.30-21 e 7.4.33-31), mesmo sem aparecer no anúncio do blog.
PleskPHP em /opt/plesk/php/8.3/bin/php. A lista fica em Tools & Settings > PHP Settings.A Plesk. Em 21/10 saíram 8.2 a 8.5 e, no Linux, correções do 8.1.34, 8.0.30 e 7.4.33 com o mesmo número: o build corrigido mostra built: Oct 21 2026 no -v. O PHP do próprio painel atualiza à parte, no Plesk Obsidian 18.0.81 Update 4 ou 18.0.80 Update 11. No Windows, a Plesk não tem correção pro 8.1 ou mais velho.
cPanelPHP em /opt/cpanel/ea-php83/root/usr/bin/php, pacotes ea-php* do EasyApache 4.A cPanel, no EasyApache 4 25.91, do ea-php74 ao ea-php85. O 8.1, o 8.0 e o 7.4 corrigidos podem aparecer como 8.1.35, 8.0.31 e 7.4.34, números que o projeto PHP não lançou: a cPanel adotou essa numeração nos pacotes em 22/10. Confira pelo changelog. O PHP interno do painel vem no cPanel & WHM 138.0.18, 136.0.50, 134.0.66 ou 110.0.153.
CloudLinuxPHP em /opt/alt/php83/usr/bin/php (alt-php) ou pacotes ea-php com cloudlinux no nome.A CloudLinux. Parte dos pacotes corrigidos tem número mais baixo que o do projeto (o ea-php84 corrigido é o 8.4.26-2, por exemplo) e parte já usa o número do projeto. Confira com os comandos do passo 3.
Imagem de containerO PHP está dentro da imagem: a oficial php, a de um fornecedor, como zabbix-web ou glpi, ou uma imagem sua.Quem publica a imagem. A oficial php tem as versões corrigidas desde 21/10. Imagem própria precisa ser reconstruída sobre a base nova.
Windows com IISUm php-cgi.exe numa pasta do servidor, chamado pelo FastCGI do IIS.O projeto PHP, em windows.php.net. Até 23/10 a gente não encontrou orientação da Microsoft sobre essas CVEs.
Compilado à mãoNenhum pacote é dono do binário (comando abaixo).Quem compilou. Recompile com a versão corrigida. Pro 7.4, o 8.0 e o 8.1, o projeto publicou só correções mínimas no código-fonte.
Equipamento ou produto fechadopfSense, OPNsense, NAS, painel web de equipamento.O fabricante. Veja a seção do pfSense e a lista do NCSC da Holanda.

Pra saber se o PHP que serve o site veio de pacote, pergunte ao gerenciador de pacotes quem é o dono do binário do PHP-FPM (o passo 3 mostra como achar o PID dele). Se nenhum pacote for dono, alguém compilou ou copiou esse PHP à mão.

dpkg -S "$(sudo readlink -f /proc/PID/exe)"     # Debian e Ubuntu
rpm -qf "$(sudo readlink -f /proc/PID/exe)"     # Red Hat, Alma, Rocky
apt-cache policy php8.3-fpm                     # mostra de qual repositório o pacote veio
3

Confira a versão do pacote instalado

O php -v do terminal pode enganar, pra mais ou pra menos.

O php -v mostra o PHP da linha de comando. As páginas são servidas pelo PHP-FPM ou pelo mod_php, que vêm de outro pacote e às vezes de outra versão. E no Ubuntu e em parte do Red Hat o pacote corrigido continua mostrando o número antigo: um servidor corrigido pode aparecer como 8.1.2 ou 8.3.6.

Qual PHP serve o site
Ache o processo principal do PHP-FPM e veja qual binário ele roda. No mod_php, veja se o Apache carrega o módulo.
ps -eo pid,lstart,args | grep 'php-fpm: master' | grep -v grep
sudo readlink /proc/PID/exe          # ex.: /usr/sbin/php-fpm8.3. Se terminar em (deleted), ainda roda o binário antigo
apache2ctl -M | grep -i php          # httpd -M no Red Hat, Alma, Rocky
Debian e Ubuntu
Veja a versão instalada e de qual repositório ela veio. Depois compare com a versão corrigida da mesma origem: um pacote vulnerável do Surý, como o 8.3.35, passa por corrigido se você comparar com o número do Ubuntu, que é 8.3.6. O apt changelog mostra o histórico da versão instalada e confirma se ela cita as duas CVEs.
dpkg-query -W -f='${Package} ${Version}\n' 'php*-fpm' 'php*-cli' 'libapache2-mod-php*'
apt-cache policy php8.3-fpm                 # de qual repositório veio
FIX=8.3.6-0ubuntu0.24.04.13                 # versão corrigida da MESMA origem (Surý: 8.3.36-1)
dpkg --compare-versions "$(dpkg-query -W -f='${Version}' php8.3-fpm)" ge "$FIX" \
  && echo corrigido || echo PENDENTE
apt changelog php8.3-fpm 2>/dev/null | grep -m2 -E 'CVE-2026-10961(8|9)'
Red Hat, Alma, Rocky
Compare a versão instalada com a do aviso RHSA, ALSA ou RLSA da tabela abaixo. O dnf updateinfo lista as correções disponíveis que ainda não foram instaladas: se ele devolver o aviso, o servidor está pendente. Lista vazia não prova correção, porque o Remi e a CloudLinux não publicam esse aviso e o módulo php:8.4 do RHEL 9 ainda não tinha correção.
rpm -q php-fpm php-cli
sudo dnf updateinfo list --cve CVE-2026-109618
CloudLinux
No alt-php e no ea-php, confira pelo changelog. No PHP nativo do CloudLinux 8, 9 e 10, o changelog não cita a CVE: ali a conferência é pela versão, que precisa ser 8.2.35 ou 8.3.36 ou mais nova.
rpm -q --changelog alt-php85-common | grep -E 'CVE-2026-(109618|109619)'
rpm -q --changelog ea-php84-php-cli | grep -E 'CVE-2026-(109618|109619)'
Alpine
O Alpine usa o número do projeto. Compare com a tabela.
apk list -I 'php*'

Versão corrigida por origem, lida em 23/10/2026

OrigemPacote corrigidoAviso
Projeto PHP8.5.12, 8.4.27, 8.3.36 e 8.2.35. Vale pro código-fonte, pro Windows e pra imagem oficial php do Dockerphp.net, 21/10
Debian 13php8.4 8.4.27-1~deb13u1DSA-6574-1
Debian 12php8.2 8.2.35-1~deb12u1DLA-4848-1
Ubuntu 26.04php8.5 8.5.4-0ubuntu1.5USN-8948-1
Ubuntu 24.04php8.3 8.3.6-0ubuntu0.24.04.13USN-8948-1
Ubuntu 22.04php8.1 8.1.2-1ubuntu2.28USN-8948-1
Ubuntu 20.04 e anterioresSó com Ubuntu Pro (ESM). Ex.: php7.4 7.4.3-4ubuntu2.29+esm5USN-8948-2
RHEL, Alma e Rocky 10php-8.3.36-1.el10_2 e php8.4-8.4.27-1.el10_2RHSA-2026:87070 e 87071
RHEL, Alma e Rocky 9PHP padrão php-8.0.30-8.el9_8.1. Módulos php:8.2 e php:8.3 corrigidos. O módulo php:8.4 ainda constava como afetado em 23/10RHSA-2026:87151, 87072 e 87079
RHEL, Alma e Rocky 8Módulos php:8.2 (8.2.35-1) e php:7.4 (7.4.33-8)RHSA-2026:87073 e 87080
Alpinephp85 8.5.12-r0 (3.23), php84 8.4.27-r0, php83 8.3.36-r0 e php82 8.2.35-r0 (até o 3.22)secdb do Alpine

Sistema operacional fora de suporte, como CentOS 7 ou Debian 11, não aparece nessa tabela porque não recebe correção gratuita: veja o passo 5. Se o seu fluxo do Red Hat não está aqui, confira a página da CVE na Red Hat, que ainda estava sendo atualizada em 23/10.

4

Atualize e reinicie tudo o que roda PHP

Sem reiniciar, o processo continua com o código antigo na memória.

Na maioria dos servidores não precisa reiniciar o sistema operacional. Basta reiniciar os serviços que rodam PHP, e a parada costuma ser de segundos.

AmbienteO que reiniciar
PHP-FPM com Nginx ou ApacheO serviço do PHP-FPM, por exemplo systemctl restart php8.3-fpm (php-fpm no Red Hat, php83-php-fpm com os pacotes do Remi). O servidor web não precisa reiniciar.
Apache com mod_phpO Apache inteiro, com systemctl restart apache2 (httpd no Red Hat).
LiteSpeed ou OpenLiteSpeedOs processos lsphp. Reiniciar o LiteSpeed sobe processos novos.
Painel de hospedagemAtualize pelo mecanismo do painel e reinicie os serviços de PHP dele e o servidor web.
Windows com IISTroque a pasta do PHP pela versão corrigida e recicle os pools de aplicação que usam PHP.
ContainersBaixe a imagem corrigida, reconstrua as suas e recrie os containers, por exemplo com docker compose pull e docker compose up -d. Reiniciar o container mantém a imagem velha.
Workers de longa duraçãoFilas, agendadores e servidores como Laravel Octane, RoadRunner, Swoole e FrankenPHP em modo worker: cada processo precisa reiniciar.
pfSense e ZabbixTêm seção própria logo abaixo.

Depois, confirme que nenhum processo ficou com a versão antiga. No Debian e no Ubuntu, o needrestart lista o que ainda usa biblioteca velha. No Red Hat e derivados, o dnf needs-restarting faz o mesmo.

sudo needrestart -r l                  # Debian e Ubuntu: só lista, não reinicia
sudo dnf needs-restarting -s           # Red Hat, Alma, Rocky

Problemas já relatados na versão nova. Até 23/10 apareceram três relatos no repositório do PHP sobre o 8.4.27 e o 8.5.12. A correção criou um limite rígido de memória, por padrão o dobro do memory_limit, e um processo que passa dele é encerrado à força, com código 137 no log do PHP-FPM, em vez de dar o erro de falta de memória que a aplicação sabe tratar. Os outros dois são uma queda em código que usa SimpleXML, já consertada no código do PHP mas ainda sem versão, e um caso raro de sessão apagada quando o progresso de upload está ligado.

Nenhum desses relatos justifica ficar na versão antiga, que continua aberta pra execução de código sem login. Se der, teste em homologação antes. Em produção, acompanhe nos primeiros dias o erro 500 e o processo encerrado com código 137.

Mantenha o progresso de upload desligado. Em 23/10 o php.net sugeriu deixar session.upload_progress.enabled = 0 mesmo depois de atualizar, até a próxima versão, por causa de uma terceira falha, a CVE-2026-115560. Ela é rara: só aparece se a aplicação troca o formato de gravação da sessão (o serialize_handler) durante a execução. Quem não usa a barra de progresso de upload pode deixar desligado de vez. O jeito de configurar está no passo 5.

pfSense e OPNsense

A webGUI e o Captive Portal do pfSense rodam em PHP.

A Netgate, fabricante do pfSense, confirmou em 21/10 que as duas falhas afetam esse firewall quando a webGUI, o painel de administração web, ou o Captive Portal, a tela de login pra visitantes, ficam ao alcance de quem não é confiável. Por padrão, a webGUI só responde na rede interna e o Captive Portal vem desligado.

Urgência
Captive Portal ligado: atualize o quanto antes, porque o portal recebe gente de fora por natureza. webGUI acessível pela internet ou por rede não confiável: atualize já, feche a regra e passe a administrar só por VPN. webGUI restrita aos hosts de gerência, sem Captive Portal: a Netgate considera esse firewall fora de risco e recomenda atualizar quando for conveniente. A gente incluiria no mesmo ciclo, porque um equipamento comprometido na rede interna alcança a webGUI.
Versões corrigidas
pfSense Plus 26.07 e 26.03.1 e pfSense CE 2.9.0 passam a ter PHP 8.5.12. O CE 2.8.1 passa a ter PHP 8.3.36. A Netgate disse no fórum que não vai corrigir versões mais velhas, como a 2.7.2: o caminho é subir pra uma versão suportada, com reboot e janela de manutenção maior. Faça backup da configuração antes.
Como atualizar
Pelo SSH ou pelo console. A webGUI e o Netgate Nexus não fazem essa atualização. A boa prática da Netgate é atualizar tudo e reiniciar o firewall:
pfSense-upgrade -c && \
pkg upgrade -y && \
pkg upgrade -fy pfSense-pkg-WireGuard && \
/etc/rc.reboot
Sem reboot, troque a última linha por /etc/rc.php-fpm_restart && /etc/rc.restart_webgui. Quem usa Captive Portal acrescenta && /etc/rc.captiveportal_configure no fim.
Cuidados
O pacote do WireGuard é reinstalado no fim, senão ele pode não subir com o PHP novo. Se você administra o firewall por um túnel WireGuard, a conexão deve cair no meio do processo: tenha outro acesso pronto. Em par de alta disponibilidade (CARP, dois firewalls em que um assume se o outro cair), a gente atualiza primeiro o secundário e, depois de validar, o primário.
OPNsense
A equipe do OPNsense publicou correção em 21/10: Community 26.7.7, com PHP 8.5.12, e 26.1.11, e Business 26.4.2p4, com PHP 8.3.36. A atualização sai em System > Firmware > Status. Quem usa captive portal precisa reiniciar o serviço dele depois.

Zabbix

Só a interface web roda em PHP, mas ela costuma guardar o acesso a muitos equipamentos.

O Zabbix é um sistema de monitoramento de rede e de servidores. A Zabbix informou em 22/10 que o frontend usa PHP e que o PHP é uma dependência separada, que não vem nos pacotes da Zabbix. Quem corrige é a atualização do PHP. O Zabbix Server, o Proxy e os Agents não rodam em PHP: a documentação lista o PHP só como requisito do frontend.

Por que priorizar
O Zabbix costuma guardar senha de SNMP e de SSH e token de API de muitos equipamentos. Vale priorizar mesmo quando ele só responde na rede interna.
Instalação por pacote
Atualize o PHP pela distribuição, conforme o passo 3, e reinicie o PHP-FPM ou o Apache. A versão do Zabbix não muda. Só a tela para durante o reinício: a coleta, os alertas e o histórico seguem normais, porque dependem do Zabbix Server.
Docker
O PHP vem dentro da imagem zabbix-web. Os mantenedores reconstruíram as tags latest e as versões 6.0.49, 7.0.32 e 7.4.16 entre 22 e 23/10, com o mesmo nome de tag. Baixe a imagem de novo e recrie o container. Se a imagem é baseada em Ubuntu, o PHP pode aparecer como 8.5.4: o pacote corrigido do Ubuntu 26.04 é o 8.5.4-0ubuntu1.5.
Appliance virtual
O appliance da Zabbix roda em AlmaLinux 8. A página de download não diz se as imagens novas já trazem o PHP corrigido, então atualize o PHP pelo dnf e confira.
Se não der pra atualizar já
Pare a interface web: o Nginx ou o Apache e o PHP-FPM do frontend. A coleta e os alertas continuam rodando. Ficam fora só a tela e a API. É o que a Zabbix do Japão recomenda pros appliances que ela vende.
5

O que fazer com o PHP que ainda não dá pra atualizar

Medidas pra ganhar tempo, na ordem em que a gente faria.

Nada aqui substitui a atualização. O php.net diz que as medidas abaixo reduzem a exposição a caminhos de ataque conhecidos, mas não deixam a instalação segura. Quando a correção entrar, desfaça as que atrapalham a aplicação, menos o progresso de upload desligado, que o php.net sugere manter até a próxima versão.

Fechar o acesso
Tire da internet o que não precisa estar lá: webGUI do pfSense, Zabbix, painel de hospedagem, sistema interno. Deixe o acesso só por VPN ou por endereços autorizados. O CTIR Gov, que coordena a resposta a incidentes do governo federal, recomenda restringir o acesso às aplicações expostas enquanto a atualização não sai.
Tirar do ar
Pro que precisa ficar exposto e não dá pra atualizar já, a CISA, agência de cibersegurança dos Estados Unidos, recomenda tirar o sistema do ar até corrigir. A NSA, a agência de segurança dos Estados Unidos, deu o mesmo recado. A CISA estende isso a quem roda PHP 8.1 ou mais velho.
PHP 8.1 ou mais velho
O projeto PHP não vai lançar versão corrigida do 8.1 pra trás. Publicou só correções mínimas no código-fonte do 7.4, do 8.0 e do 8.1, pra quem compila. Na prática, a saída é o backport de quem distribui o seu PHP, como nas tabelas dos passos 2 e 3. Sem nenhum backport, a CISA e os centros de cibersegurança da Holanda e da Irlanda recomendam tirar do ar ou isolar até migrar. Planeje a migração pro 8.4 ou o 8.5. O 8.2 também perde suporte em 31/12/2026.
Configuração do PHP
O php.net lista configurações que reduzem a exposição a caminhos de ataque conhecidos. Aplique onde a aplicação não consegue desfazer: no pool do PHP-FPM ou na configuração do Apache, com php_admin, nunca por ini_set() ou .user.ini. Reinicie todos os workers depois.
; PHP-FPM: no pool, ex.: /etc/php/8.3/fpm/pool.d/www.conf
php_admin_flag[session.upload_progress.enabled] = off
php_admin_flag[fatal_error_backtraces] = off ; só no PHP 8.5
php_admin_value[post_max_size] = 8M          ; 32M se o sistema recebe upload
php_admin_value[memory_limit] = -1

# Apache com mod_php: no vhost ou num .conf do Apache
php_admin_flag session.upload_progress.enabled off
php_admin_value post_max_size 8M
php_admin_value memory_limit -1
As duas primeiras linhas são da CVE-2026-109619 e fecham só os caminhos já confirmados. O post_max_size e o memory_limit são da CVE-2026-109618. O memory_limit = -1 parece estranho, mas é o que o php.net indica: ele tira o limite de memória do PHP, que é a falta de memória que o atacante consegue provocar. Uma falha real de alocação ainda pode chegar ao mesmo ponto, então o limite de memória passa pro container ou pro cgroup do serviço. Não use RLIMIT_AS nem RLIMIT_DATA, que provocam justamente a falha. Deixe o upload_max_filesize abaixo do post_max_size e limite no servidor web ou no proxy o tamanho da requisição e o número de partes e de cabeçalhos.
WAF
Se o site passa por um WAF, o filtro de aplicação web, confira se as regras que o provedor publicou pra essas falhas estão ativas e bloqueando, e não só registrando. Cloudflare e AWS publicaram as delas. A AWS avisa que as regras não fecham as falhas e cobrem só em parte a CVE-2026-109618.
6

Veja se alguém invadiu o servidor antes da correção

Pros servidores expostos que ficaram sem correção desde 17/10.

A atualização não diz se alguém entrou antes dela, então essa conferência vem depois. A Amazon recomenda investigar desde 17/10, a data da primeira tentativa que ela viu. Os pesquisadores também mostraram que dá pra ler trechos da memória do PHP pela rede, onde podem estar senhas, tokens e chaves de API de outras requisições.

Logs
Procure falta de memória, processo do PHP caindo perto de POST grande ou de envio de arquivo, e erro 500 repetido depois de envio de formulário. Log limpo não descarta invasão: o ataque roda abaixo da aplicação e pode não deixar rastro nela.
PADRAO='Allowed memory size|SIGSEGV|exited on signal|exit signal|exited with code 137'
sudo grep -E "$PADRAO" /var/log/php*-fpm.log /var/log/apache2/error.log    # Debian e Ubuntu
sudo grep -rE "$PADRAO" /var/log/php-fpm/ /var/log/httpd/error_log         # Red Hat, Alma, Rocky
Processos
PHP-FPM ou Apache com sh, bash, curl ou wget pendurado embaixo, rodando com o usuário do site.
ps -eo user,pid,ppid,lstart,args --forest | less
Arquivos e agendamentos
Arquivo .php novo na pasta do site sem deploy que explique, tarefa nova no cron, arquivo estranho em /tmp. Troque www-data pelo usuário do site no seu servidor (apache no Red Hat).
sudo find /var/www /home -type f -name '*.php' -newerct 2026-10-17 2>/dev/null
sudo find /tmp /var/tmp -type f -newerct 2026-10-17 -ls
sudo crontab -l -u www-data
Rede e contas
Conexão de saída aberta por processo do PHP, conta nova no sistema ou na aplicação, login fora do padrão. O comando abaixo esconde as conexões que chegam nas portas 80 e 443 do servidor, pra sobrar o que o PHP abriu pra fora.
sudo ss -tpn state established | awk '$3 !~ /:(80|443)$/' | grep -E 'php|apache2|httpd'
Requisições
Se você tem log de WAF ou do corpo das requisições, procure POST com PHP_SESSION_UPLOAD_PROGRESS em envio de formulário e cookie PHPSESSID grande demais ou malformado. A Amazon publicou seis IPs ligados às tentativas: 103.216.220.92 (17/10), 31.223.184.166, 37.19.200.5, 134.209.159.64, 103.114.163.188 e 95.217.98.37 (21/10). São redes de anonimização compartilhadas: investigue o acesso em vez de só bloquear.
Se achar sinal de invasão
Isole o servidor da rede antes de desligar, porque desligar apaga o que está na memória. Não limpe nada antes da análise: guarde os registros e chame quem responde por incidente na empresa. Pela leitura de memória que os pesquisadores demonstraram, a gente trocaria as senhas, tokens e chaves que a aplicação usa. Se o sistema guarda dado pessoal e o incidente pode trazer risco ou dano relevante aos titulares, a LGPD obriga o controlador a comunicar a ANPD e os titulares (art. 48). Avalie isso com o encarregado de dados e o jurídico.

O atalho honesto

A parte demorada é achar todo PHP
e atualizar na ordem certa.

Cada servidor tem o PHP vindo de um lugar diferente, o pfSense pede janela de manutenção e acesso pelo console, e o sistema legado não tem pacote corrigido. A Infotécnica faz isso com a sua equipe, no nosso datacenter em Florianópolis ou no seu ambiente.

A gente levanta as versões de PHP e a origem de cada pacote, monta o plano por risco com janela de manutenção, inclusive fora do horário comercial, e aplica e valida a correção no pfSense, inclusive em par de alta disponibilidade, no Zabbix e nos servidores web. Também apoia os casos especiais, como PHP sem suporte e sistema operacional legado.

1982

infra de TI

2015

DC próprio

24/7

monitoramento

SC

Florianópolis

Quer que a gente olhe
o seu caso junto com você?

A gente olha com você onde o PHP de cada sistema roda, de onde ele vem e quais sistemas respondem pela internet.

Você sai com a ordem de atualização por risco e com o que fazer nos sistemas que ainda não têm correção.

Se a sua equipe já dá conta, a gente diz isso também.

Infotécnica desde 1982. Datacenters próprios em Florianópolis desde 2015. Suporte humano, em português.

Fontes, lidas em 23/10/2026

Este guia não substitui o aviso do fabricante de cada sistema. Os comandos são exemplos pra Linux e Windows comuns: confira o nome do pacote e do serviço no seu ambiente antes de rodar.