Em 21 de outubro de 2026 o PHP publicou patches de emergência para duas falhas críticas no próprio interpretador: CVE-2026-109618 e CVE-2026-109619, batizadas pela comunidade de PHP2Shell. CVSS 9.2 cada uma. O ponto que muda o jogo: o ataque não depende do seu código. Em vários cenários (especialmente Apache com mod_php), a requisição maliciosa é processada antes de qualquer linha da aplicação rodar. Login, middleware e validação de input não entram no caminho.
CVE-2026-109618 é corrupção ligada a out-of-memory. O PHP usa longjmp() para abortar quando estoura o memory_limit. Se isso acontece no meio da montagem interna da requisição (por exemplo no parse de multipart/form-data), a limpeza posterior trata dados pela metade como válidos. Resultado: use-after-free e, nas condições certas, execução remota de código sem autenticação. A CVE-2026-109619 é estado global obsoleto: ponteiros de uma requisição sobrevivem depois que a memória foi liberada; a próxima requisição no mesmo worker reutiliza esse estado. Um dos caminhos confirmados passa por session.upload_progress (ligado por padrão) e, no 8.5, por fatal_error_backtraces.
Versões afetadas: 8.2.x antes de 8.2.35, 8.3.x antes de 8.3.36, 8.4.x antes de 8.4.27, 8.5.x antes de 8.5.12. Ramos mais antigos (8.1 e abaixo) também, com backports de código-fonte para 7.4, 8.0 e 8.1 — sem release oficial compilado. SAPIs em risco: mod_php, PHP-FPM, php-cgi, FrankenPHP, LiteSpeed. Relatos de exploração tentada já circularam; a superfície é enorme porque o bug está no engine, não no WordPress, Laravel ou no script que você escreveu.
Isso não substitui o que já matava aplicação PHP há anos. SQL injection por concatenação de string, XSS por saída sem encoding contextual, inclusão remota de arquivo e funções perigosas habilitadas (exec, system, shell_exec) continuam no Top 10 OWASP e no dia a dia de invasão. PHP2Shell só deixa claro que "aplicação limpa" não basta se o runtime estiver desatualizado.
O que fazer, na ordem
- Atualizar o runtime. Única correção completa. Subir para 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 (conforme o branch). Depois reiniciar todos os workers — processo antigo continua com o código vulnerável em memória. Em hospedagem compartilhada, cobrar o painel ou o provedor; em container, rebuild da imagem base.
-
Mitigações parciais se o patch ainda não for possível (não substituem o update):
-
session.upload_progress.enabled = 0e reinício dos workers - no 8.5:
fatal_error_backtraces = 0 -
pm.max_requests = 1(ou vida curta do worker) para reduzir a janela de reuso de estado - onde fizer sentido: bloquear
multipart/form-datano proxy se a app não recebe upload - Aviso oficial: cada medida cobre só parte dos braços do ataque.
-
-
Endurecer o php.ini.
expose_php=Off,display_errors=Offem produção, logs em arquivo,disable_functionscomexec,passthru,shell_exec,system,proc_open,popen(e o que mais a app não precisar). Seguir o OWASP PHP Configuration Cheat Sheet. -
Código da aplicação. Prepared statements (PDO com parâmetros bindados — nunca concatenar SQL). Validação por allowlist no input. Encoding contextual na saída (HTML, JS, URL, conforme o destino). Hash de senha com
password_hash/password_verify. Frameworks e CMS atualizados reduzem a superfície, mas não fecham o bug de núcleo.
Se você opera servidor ou site em PHP: confira a versão (php -v ou o painel), aplique o patch desta semana e reinicie os workers. Sem isso, o restante do hardening fica em cima de um engine que ainda responde ao pacote errado.
Leia o artigo mais aprofundado clicando abaixo.
Se você quer usar IA com propriedade, e não apenas gerar código.
A série completa (eBook) está disponível com 30% de desconto usando o cupom LEIA30:
- Cupom de 30% OFF: LEIA30.
- Disponível também no Kindle Unlimited.
Referências
- The PHP Foundation security release 21/10/2026 (8.5.12/8.4.27/8.3.36/8.2.35)
- Advisories CVE-2026-109618 (OOM corruption) e CVE-2026-109619 (stale global state)
- Análises JFrog, Datadog Security Labs, Censys, Securelist (out 2026)
- OWASP PHP Configuration Cheat Sheet e Secure Coding Practices
Tags
#PHP #Seguranca #PHP2Shell #CVE #Ciberseguranca #WebSecurity #DevOps #Backend #OWASP #Atualizacao #RCE


Top comments (0)