Em 11 de outubro, o principal desenvolvedor do curl divulgou a notícia em um post no blog, explicando que era “ o pior problema de segurança encontrado no curl em muito tempo ”. A vulnerabilidade também foi documentada e publicada como CVE-2023-38545 , afetando versões do libcurl que variam de 7.69.0 a 8.3.0.
Curl (geralmente estilizado como “cURL”) é uma ferramenta de linha de comando e biblioteca para transferência de dados com URLs. Ele foi projetado para funcionar com uma ampla variedade de protocolos de rede e oferece a capacidade de realizar transferências de dados. Sua biblioteca associada, libcurl, permite que os desenvolvedores integrem os recursos do curl em seus próprios aplicativos. É um componente central em vários aplicativos no Linux e em outras plataformas.
O que nos leva ao SOCKS5, um protocolo de rede bastante comum que permite rotear o tráfego de rede entre um cliente e um servidor através de um servidor proxy. Você já deve ter encontrado isso se já usou as conexões de servidor como proxies SOCKS5 em configurações específicas. Notavelmente, este protocolo versátil também desempenha um papel fundamental na comunicação através da rede Tor e possui uma infinidade de outras aplicações no cenário digital.
A fraqueza crítica do Curl deriva de uma fonte inesperada: o comprimento dos nomes de host. Quando curl tem a tarefa de passar um nome de host para o proxy SOCKS5 para resolução, ele deve lidar com nomes de host de até 255 bytes de comprimento. No entanto, se um nome de host ultrapassar esse limite, o curl deverá mudar para a resolução de nomes locais e encaminhar apenas o endereço resolvido para o proxy. Infelizmente, devido a um bug, durante um handshake SOCKS5 lento, a variável local destinada a sinalizar “deixe o host resolver o nome” às vezes adquire o valor errado. O resultado não intencional? O nome de host excessivo é copiado para o buffer de destino em vez de apenas para o endereço resolvido, criando um ponto de entrada potencial para violações de segurança utilizando a biblioteca curl.
No entanto, para ser executada, a vulnerabilidade requer o cumprimento de pré-condições específicas :
- A solicitação de curl é feita via meias5h.
- O buffer de negociação da máquina de estado curl é menor que ~65k.
- A resposta “olá” do servidor SOCKS está atrasada.
- O invasor define um nome de host de destino final maior que o buffer de negociação.
Essas condições específicas podem parecer extensas, mas você ainda deve ser cauteloso e manter-se atualizado, dada a ampla adoção do curl em uma variedade de sistemas operacionais, aplicativos e dispositivos de Internet das Coisas (IoT).
Para usuários do Linux, especialmente aqueles que utilizam o serviço SOCKS5, é crucial reconhecer que a mitigação dessa vulnerabilidade é uma questão do lado do cliente. O problema reside na extremidade do cliente, deixando os administradores de servidor impotentes para combater diretamente a ameaça. Assim, a responsabilidade pela proteção dos sistemas recai diretamente sobre os próprios clientes. É importante observar que isso não afeta de forma alguma os aplicativos, extensões ou protocolos VPN. Isso só pode afetar usuários que utilizam configurações manuais específicas do SOCKS5 em suas configurações. No entanto, pedimos aos usuários que tomem as seguintes ações:
- Atualize curl e libcurl para a versão 8.4.0.
- Atualize qualquer software que utilize uma biblioteca libcurl vinculada estaticamente.
O mundo da segurança cibernética é um cenário complexo e em constante evolução. As pré-condições para a questão da segurança curl podem parecer complicadas, mas servem como um lembrete da criatividade e persistência de atores mal-intencionados. Mantenha-se informado, seguro e certifique-se de que seu software esteja atualizado para proteção contra possíveis incêndios de segurança.






