Os manipuladores cURL integrados (`CurlHandler` e `CurlMultiHandler`) falham ao isolar adequadamente os cabeçalhos `Proxy-Authorization` dos servidores de origem. Isso ocorre porque os manipuladores colocam os cabeçalhos de requisição de primeira classe na lista de cabeçalhos de origem (`CURLOPT HTTPHEADER`) e apenas os movem para a lista exclusiva do proxy (`CURLOPT PROXYHEADER`) quando um proxy HTTP ou HTTPS é previsto. Consequentemente, as credenciais do proxy podem ser enviadas ao servidor de origem se a requisição for direta, ignorada via configurações `no proxy`, enviada através de um proxy SOCKS ou redirecionada de um salto com proxy para uma rota sem proxy.
Em sistemas com libcurl anterior a 7.37.0 ou extensões PHP cURL que carecem de `CURLOPT PROXYHEADER`, `CURLOPT HEADEROPT` e `CURLHEADER SEPARATE`, nenhum canal exclusivo de proxy está disponível, mantendo o cabeçalho na lista de origem para todas as rotas. Além disso, o manipulador de stream pode expor credenciais quando combinado com sobreposições brutas de `stream context.http.proxy`.
Um invasor que controle o servidor de origem pode capturar essas credenciais privadas por meio de logs de acesso ou sistemas de rastreamento. Isso pode permitir que o invasor abuse de proxies com controle de acesso ou personifique o principal do proxy.