Os 12 avisos de 24/09/2026 atingem extensões e caminhos diferentes do interpretador. Alguns dependem de uma configuração específica, como o pool do PHP-FPM em IPv6 ou o servidor rodando Windows. Cada ficha explica o mecanismo, mostra de onde a falha é alcançada e indica a linha que precisa de atualização. Compare a faixa apenas com a sua linha de manutenção.
AplicativoPHP
Data do compilado
Vulnerabilidades12
As faixas abaixo reproduzem os valores da API oficial e devem ser comparadas somente com a linha indicada. A situação corrigida informa que o projeto disponibilizou a correção, não que você já atualizou a instalação. As pontuações são do CVSS publicado em cada aviso, com a versão 4.0 quando disponível. As medidas temporárias descritas nas fichas não substituem a atualização.
Gravidade altaCVSS: 7,5/10Correção disponível
Recursão sem limite na limpeza de XML do SoapServer
A função cleanup_xml_node percorre o documento XML uma vez por nível de aninhamento, sem medir a profundidade. Depois que o libxml2 termina a leitura, esse passo do próprio PHP desce por cada elemento filho. Um envelope SOAP com dezenas de milhares de elementos aninhados esgota a pilha do processo e encerra o worker. A mesma recursão existe no decodificador de valores e na busca de nós do WSDL.
Casos de uso afetados
Você publica um endpoint SoapServer acessível pela internet. Um cliente HTTP sem autenticação envia um POST com um envelope contendo 50 mil elementos aninhados. O worker que atende a requisição cai e as demais requisições ficam sem atendimento até o processo ser reiniciado.
Confira na sua instância
Confira se há SoapServer exposto e qual linha do PHP atende cada endpoint. Revise os registros do servidor em busca de reinícios de worker sem mensagem de aplicação. Até atualizar, restrinja o acesso a esses endpoints por rede ou autenticação e limite o tamanho do corpo no proxy reverso.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
A correção define um limite de profundidade de 2048 níveis e converte a limpeza do XML em percurso iterativo.
Gravidade moderadaCVSS: 6,9/10Correção disponível
Nomes de dispositivo reservados no Windows travam a requisição
No Windows, as APIs de arquivo e de stream do PHP não recusam nomes reservados como CON, PRN, AUX, NUL, COM1 a COM9 e LPT1 a LPT9 quando eles aparecem como um componente do caminho. Um nome definido no upload chega ao CreateFileW e abre um dispositivo em vez do arquivo comum. A leitura ou gravação pode ficar presa e consumir os workers até o processo esgotar.
Casos de uso afetados
Sua aplicação roda no Windows e monta o caminho de destino do upload com o nome enviado pelo usuário. Um envio com o nome CON ou NUL.txt abre um dispositivo e deixa a requisição pendurada, reduzindo a capacidade de atendimento até o pool esgotar.
Confira na sua instância
Confira se o servidor roda Windows e localize os fluxos que montam caminho de arquivo com nome vindo do usuário. Até atualizar, valide o nome antes de gravar: recuse CON, PRN, AUX, NUL, COM1 a COM9, LPT1 a LPT9, CONIN$ e CONOUT$, inclusive com extensão ou dois-pontos.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
A correção classifica o caminho antes da chamada ao Windows e recusa componente reservado. Nomes de dispositivo isolados, como NUL, continuam aceitos por compatibilidade.
Gravidade moderadaCVSS: 6,5/10Correção disponível
Bypass do allowed_clients do FastCGI em IPv6
A checagem de acesso do cliente FastCGI compara apenas os primeiros 12 bytes de um endereço IPv6 de 16 bytes. Com isso, listen.allowed_clients vale para todo o prefixo /96 em vez do endereço exato. Um endereço no mesmo /96 de um cliente permitido atravessa a checagem e alcança o endpoint FastCGI.
Casos de uso afetados
Seu pool do PHP-FPM escuta em um endereço IPv6 e usa listen.allowed_clients como único controle de acesso. Uma requisição a partir de um endereço no mesmo /96 de um cliente permitido alcança o endpoint e executa scripts com o worker.
Confira na sua instância
Abra a configuração de cada pool e veja o valor de listen. Soquete Unix e escuta em IPv4 não passam por esse caminho. Nos pools com IPv6, confira a versão e trate o allowed_clients como um prefixo /96 até atualizar, mantendo o firewall como o limite real.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
Gravidade moderadaCVSS: 6,5/10Correção disponível
Estouro de inteiro vira estouro de buffer na leitura HTTP do SOAP
O cliente SOAP controla o crescimento do buffer de resposta com uma comparação que depende de estouro de inteiro com sinal. Esse comportamento é indefinido e o compilador pode remover a checagem. Sem ela, um servidor SOAP malicioso faz o cliente alocar um buffer muito menor do que os bytes que serão gravados nele e provoca corrupção no heap.
Casos de uso afetados
Seu código usa SoapClient para conversar com um servidor fora do seu controle ou por uma conexão sem TLS. O servidor responde com codificação chunked e tamanhos de bloco que ultrapassam o limite do inteiro, disparando a escrita fora do buffer durante a montagem da resposta.
Confira na sua instância
Liste os destinos configurados nos SoapClient e confira se algum aponta para host externo ou usa http em vez de https. Revise quedas de processo durante chamadas SOAP. Até atualizar, restrinja os destinos e mantenha TLS com verificação de certificado.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
O estouro depende do compilador usado no build. A correção troca a soma para size_t e valida cada etapa de crescimento antes de alocar.
Gravidade moderadaCVSS: 6,5/10Correção disponível
Estouro de heap na verificação de nome curinga do certificado
A função que compara nome curinga em certificados TLS calcula o tamanho passado ao memchr com uma subtração que pode voltar ao tamanho máximo de size_t. Um servidor malicioso apresenta um certificado cujo nome literal é maior que o hostname verificado e faz o cliente ler até o limite da memória. O caminho é alcançado por qualquer stream cliente, porque verify_peer_name vem ligado por padrão.
Casos de uso afetados
Seu código abre uma conexão https com um host externo usando file_get_contents ou outro stream cliente. O servidor apresenta um certificado com nome curinga maior que o hostname solicitado e provoca leitura fora do buffer alocado para o nome do certificado.
Confira na sua instância
Como a verificação de nome é o padrão, qualquer cliente de stream que alcance hosts externos está no caminho. Confira a linha do PHP usada nas chamadas de saída e atualize. Até lá, restrinja as conexões a destinos conhecidos.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
Gravidade moderadaCVSS: 5,9/10Correção disponível
Leitura fora do buffer nos filtros convert com NUL na quebra de linha
Os filtros convert.base64-encode, convert.quoted-printable-encode e convert.quoted-printable-decode aceitam a opção line-break-chars. O construtor duplica o valor com pestrdup, que para no primeiro byte NUL, mas mantém o tamanho original. Ao inserir a quebra de linha, o filtro copia esse tamanho a partir da alocação menor e coloca bytes vizinhos do heap na saída gerada.
Casos de uso afetados
Sua aplicação anexa um filtro convert a um stream e monta a opção line-break-chars com valor vindo de configuração ou de entrada. Um valor com NUL no início faz a saída carregar bytes de memória adjacente, que seguem para o arquivo, a resposta HTTP ou o registro de log.
Confira na sua instância
Procure chamadas de stream_filter_append com convert.base64-encode, convert.quoted-printable-encode ou convert.quoted-printable-decode que informem line-break-chars. Confira se o valor pode conter NUL. Até atualizar, valide a opção e prefira a quebra padrão do filtro.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
Gravidade moderadaCVSS: 5,9/10Correção disponível
Credenciais enviadas para outro host em redirecionamento HTTP
Quando o wrapper http:// segue um redirecionamento, ele reenvia os cabeçalhos Authorization, Cookie e Proxy-Authorization informados no stream, mesmo quando o destino é outro host, outra porta ou uma troca de HTTPS para HTTP. Um servidor que controla o redirecionamento recebe credenciais destinadas à origem original.
Casos de uso afetados
Seu código usa file_get_contents com opções de stream que enviam Authorization e segue redirecionamentos. A API chamada responde com um Location para outro domínio ou para http:// e o token é entregue a esse destino.
Confira na sua instância
Procure chamadas com cabeçalhos de credencial no stream HTTP e follow_location ativo. Confira os destinos configurados. Até atualizar, desligue follow_location ou valide o host e o esquema do destino antes de reenviar a requisição.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
A correção compara origem, host e porta efetivos e retira os três cabeçalhos quando o destino muda. A retirada continua valendo nos saltos seguintes.
Gravidade moderadaCVSS: 5,3/10Correção disponível
Leitura fora do buffer com Location vazio no wrapper HTTP
Ao seguir um redirecionamento cujo cabeçalho Location vem vazio, o wrapper lê um byte depois do fim do buffer que guarda o valor. O byte lido decide qual destino será montado, então o servidor que responde escolhe entre a raiz do host e o diretório atual. A falha aparece nas linhas que já receberam a correção do CVE-2025-1861.
Casos de uso afetados
Seu código abre uma URL http com file_get_contents e segue redirecionamentos. Um servidor malicioso responde com 302 e Location vazio, e o cliente segue para um destino definido por memória fora do buffer.
Confira na sua instância
Procure chamadas de stream HTTP com follow_location ativo e destinos fora do seu controle. Até atualizar, desligue o seguimento automático e trate o redirecionamento no seu código, conferindo o Location recebido.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
Gravidade moderadaCVSS: 4,3/10Correção disponível
Verificação de nome TLS recorre ao CN depois de SAN divergente
A verificação de par do OpenSSL consulta as entradas subjectAltName e, quando nenhuma corresponde, ainda aceita o Common Name. A RFC 6125 manda ignorar o CN assim que o certificado apresenta alguma identidade de serviço. Um certificado com CN de um nome e SAN de outro passa na verificação para o nome do CN, o que permite usar um certificado confiável para se passar por outro host.
Casos de uso afetados
Seu cliente abre uma conexão TLS com verificação de nome ligada. Um certificado confiável pela sua cadeia, com CN igual ao host de destino e SAN de outro nome, permite se apresentar como esse host ao cliente.
Confira na sua instância
Confira quais CAs estão no cafile ou no repositório do sistema e se certificados internos usam CN. Atualize a linha do PHP e revise os certificados emitidos pela sua própria CA, porque a correção recusa o CN quando existe SAN de serviço.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
Certificados sem nenhuma identidade de serviço continuam usando o CN, por compatibilidade.
Gravidade moderadaCVSS: 4,0/10Correção disponível
Estouro de inteiro no cabeçalho TAR injeta entradas no Phar
A leitura do campo octal de tamanho no cabeçalho TAR acumula os dígitos em um inteiro de 32 bits sem checar o limite. Um valor acima de 0xFFFFFFFF volta a zero, o parser pula a quantidade errada de blocos e interpreta o conteúdo do arquivo como o próximo cabeçalho. Um arquivo preparado injeta entradas que o PharData lista e extrai como se fossem legítimas.
Casos de uso afetados
Sua aplicação abre um arquivo tar recebido de terceiros com PharData. O arquivo traz um campo de tamanho que estoura o inteiro e, na listagem seguinte, aparecem entradas que não existiam no arquivo original.
Confira na sua instância
Procure uso de Phar, PharData ou arquivos tar vindos de upload ou de URL externa. Confira se a origem é confiável. Até atualizar, evite abrir tar não confiável no processo da aplicação e valide a origem do arquivo.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.26
8.4.26
8.5.x
<8.5.11
8.5.11
Gravidade baixaCVSS: 3,7/10Correção disponível
Byte 0xFF não é codificado no FILTER_SANITIZE_ENCODED
A tabela que decide quais bytes o FILTER_SANITIZE_ENCODED codifica tem 256 posições, mas a inicialização cobre apenas 255. A posição do byte 0xFF fica com o valor que estava na pilha. Na prática, esse byte pode passar sem codificação enquanto os demais são convertidos, e o resultado muda conforme a execução.
Casos de uso afetados
Sua aplicação usa FILTER_SANITIZE_ENCODED antes de montar uma URL ou um parâmetro. Um valor com 0xFF chega à saída sem codificação, e a etapa seguinte recebe um conteúdo diferente do esperado.
Confira na sua instância
Procure validações que dependam de FILTER_SANITIZE_ENCODED gerar saída totalmente codificada. Até atualizar, confira o resultado com uma codificação adicional, como rawurlencode, antes de usar o valor.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
8.2.x
<8.2.34
8.2.34
8.3.x
<8.3.35
8.3.35
8.4.x
<8.4.25
8.4.25
8.5.x
<8.5.10
8.5.10
A falha foi corrigida publicamente nas versões 8.4.25 e 8.5.10 e chegou às linhas 8.2 e 8.3 apenas no pacote de segurança de 24/09/2026.
Gravidade baixaCVSS: 3,1/10Correção disponível
Leituras fora do buffer em pacotes do mysqlnd
O parser do protocolo do mysqlnd lê campos do pacote antes de confirmar que ainda há bytes suficientes. Um servidor MySQL malicioso ou comprometido envia um pacote truncado e faz o cliente ler além do fim do buffer, comportamento indefinido que pode encerrar o processo. Os caminhos atingem a saudação, as respostas de OK, EOF, troca de autenticação e o cabeçalho de resultado.
Casos de uso afetados
Sua aplicação conecta a um servidor MySQL fora do seu controle ou a uma instância que pode ser comprometida. O servidor responde com um pacote truncado durante a conexão e o processo do PHP que atende a requisição encerra.
Confira na sua instância
Confira quais servidores MySQL a aplicação acessa e se algum está fora da sua rede ou é compartilhado. Atualize a linha do PHP que executa a aplicação. Enquanto isso, mantenha TLS e credenciais restritas para reduzir a superfície.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Programador há mais de 20 anos, fundador da Powertic e da Promovaweb. Embaixador do n8n no Brasil e da Baserow, Chatwoot, Miro e Kestra. Membro do Product Team do Mautic.
Canais oficiais
Nossos Links
Encontre a Promovaweb no canal que combina com o seu próximo passo.