PT-2026-67523 · Composer · Guzzle
CVE-2026-69246
·
Publicado
2026-08-03
·
Atualizado
2026-08-03
CVSS v3.1
7.2
Alta
| Vetor | AV: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 👾
Identificadores relacionados
Produtos afetados
Guzzle