PT-2026-67523 · Composer · Guzzle

CVE-2026-69246

·

Publicado

2026-08-03

·

Atualizado

2026-08-03

CVSS v3.1

7.2

Alta

VetorAV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Nome do Software Vulnerável e Versões Afetadas Guzzle versões anteriores a 7.15.2 Guzzle versões anteriores a 8.0.1
Description O Guzzle fornece a URI da requisição como texto para o transporte e fornece o cabeçalho Host separadamente. Nos manipuladores cURL, o CURLOPT URL é definido como a URI escrita e o Host é inserido no CURLOPT HTTPHEADER; o StreamHandler realiza uma ação semelhante via fopen(). Isso cria uma discrepância porque o libcurl decodifica a autoridade (percent-decoding) e aplica o mapeamento IDNA antes de resolver a conexão, enquanto o cabeçalho Host fornecido suprime aquele que o libcurl normalmente geraria. Por exemplo, um host de URI como 127.0.0.%31 é rejeitado como um literal de IP pelo filter var(), mas o libcurl o decodifica para 127.0.0.1, permitindo o acesso ao loopback sem a necessidade de consulta DNS, enquanto o servidor recebe Host: 127.0.0.%31.
Um invasor que consiga influenciar uma URI buscada pode ignorar as verificações da aplicação (como listas de negação ou verificações de IP de intervalo privado) para alcançar hosts excluídos e ler as respostas. Essa divergência também afeta a lógica interna do Guzzle: o roteamento no proxy e as decisões do RedirectMiddleware sobre a remoção dos cabeçalhos Authorization e Cookie baseiam-se no host literal e não na autoridade efetivamente contatada. Além disso, o uso de um UriInterface de terceiros com um host como blocked.example.com@127.0.0.1 pode resultar na geração de um cabeçalho Authorization: Basic a partir de informações de usuário que a aplicação não pretendia enviar.
Recommendations Atualize o Guzzle para a versão 7.15.2 ou posterior. Atualize o Guzzle para a versão 8.0.1 ou posterior. Como solução temporária, restrinja manualmente o host e qualquer cabeçalho Host explícito em cada salto de redirecionamento, garantindo que o host contenha apenas caracteres ASCII imprimíveis (intervalo 0x21 a 0x7E), não contenha escapes de porcentagem (%) e não termine com um ponto final.

Correção

SSRF

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-69246
GHSA-V5MV-P594-2X33

Produtos afetados

Guzzle