Os desenvolvedores do PHP anunciaram a publicação hoje às 17:00 (MSK) de versões corretivas de emergência (8.5.12, 8.4.27, 8.3.36 e 8.2.35), nas quais serão corrigidas duas vulnerabilidades críticas. Todos os administradores de servidores com PHP são aconselhados a instalar as correções imediatamente em seus sistemas, assim que forem lançadas. Os detalhes oficiais serão revelados somente após a disponibilização das correções, mas, segundo informações divulgadas, tratam-se das vulnerabilidades CVE-2026-109618 e CVE-2026-109619, que potencialmente permitem a execução remota de código em qualquer servidor web que execute scripts PHP na configuração padrão. Os problemas se manifestam em todas as versões a partir do PHP 5.4.
Já surgiram na rede protótipos de exploits (1, 2) para verificar a vulnerabilidade dos sistemas. Na nota do exploit, afirma-se que as vulnerabilidades são causadas pelo acesso à memória já liberada no manipulador de rastreamento do progresso do upload de arquivos em servidor (session.upload_progress). Não é necessário ter funcionalidade de upload de arquivos no site para realizar o ataque; basta que ocorra uma ativação automática no interpretador PHP do manipulador de conteúdo "multipart/form-data". Para a exploração bem-sucedida, é necessário determinar o layout das estruturas na memória do processo, que é específico para cada build (o problema é resolvido por força bruta no exploit dos deslocamentos previamente calculados para pacotes de diferentes distribuições).
Como uma solução alternativa de proteção, são recomendadas as seguintes configurações no php.ini: "session.upload_progress.enabled = off" (ou "php_admin_flag[session.upload_progress.enabled] = off" no PHP-FPM), mas um representante do projeto PHP e o autor do primeiro protótipo do exploit afirmam que isso não é suficiente para bloquear ambas as vulnerabilidades. Na nota do segundo protótipo do exploit, é mencionado que, além da configuração acima no php.ini, para prevenir o ataque sem aplicar o patch, é necessário bloquear completamente os pedidos com o tipo de conteúdo "multipart/form-data", o que levará à impossibilidade de upload de arquivos através de formulários web.
No Apache httpd, para bloquear requisições multipart, pode-se usar a seguinte regra no mod_rewrite:
RewriteCond %{HTTP:Content-Type} multipart [NC]
RewriteRule ^ — [F,L]
Para bloquear no nginx:
if ($http_content_type ~* "multipart") {
return 403;
}
Para bloquear no Caddy:
@multipart header_regexp Content-Type (?i)multipart
respond @multipart 403
Adendo: Publicados os lançamentos corretivos PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35, além de detalhes sobre as vulnerabilidades críticas corrigidas. A análise das vulnerabilidades e os métodos de proteção recomendados oficialmente foram publicados em uma notícia separada.
Fonte: opennet.ru
