Bug malicioso descoberto na utilidade Linux amplamente utilizada curl, e patches já foram disponibilizados

Bug malicioso descoberto na popular utilidade Linux curl, e correções já foram lançadas

buraco de segurança abstrato

Em sua maioria, os usuários comuns do Linux não sabem o que é o curl. No entanto, programadores e administradores de sistema conhecem bem essa utilidade.

Esse comando shell e sua biblioteca associada, libcurl, são usados para transferir dados por todos os protocolos de rede que você já ouviu falar, e são utilizados em desktops, servidores, nuvens, carros, televisores, roteadores e praticamente todos os dispositivos da Internet das Coisas (IoT). Os desenvolvedores do Curl estimam que ele seja usado em mais de vinte bilhões de instâncias. E agora, há uma possível falha de segurança nele, CVE-2023-38545.

Também: Google Cloud, AWS e Cloudflare relatam os maiores ataques DDoS já registrados

O quão séria é essa falha? O principal desenvolvedor do Curl, Daniel Stenberg, escreveu em uma postagem de blog que ela é “o pior problema de segurança encontrado no curl em muito tempo“. Ele deve saber.

Os especialistas em segurança concordam. Em uma palavra, é ruim.

Conforme alertou Saeed Abbasi, Gerente de Produto da Unidade de Pesquisa de Ameaças da Qualys: 

As organizações devem agir rapidamente para inventariar, examinar e atualizar todos os sistemas que usam curl e libcurl. Em particular, a gravidade dessa vulnerabilidade de alta severidade exige atenção imediata e cautelosa para proteger aplicativos interconectados e cientes da web, garantindo que a funcionalidade avançada de transferência de dados que o curl e o libcurl oferecem permaneçam íntegras e seguras.

Especificamente, o buraco de segurança pode ser explorado quando alguém está usando o protocolo de proxy SOCKS5. Esse protocolo bastante simples estabelece a comunicação de rede por meio de um “intermediário” dedicado. O protocolo é usado ao se comunicar pelo Tor, o software de internet de código aberto usado para permitir comunicações anônimas e acesso à internet dentro de organizações e empresas de forma privada. Alguns serviços de redes virtuais privadas, como NordVPN, Private Internet Access e Hide.Me, o oferecem para permitir que seus usuários contornem bloqueios de conteúdo da internet e garantam sua anonimidade.

Em uma conversa no Mastodon, Steinberg disse: “Talvez, o mais realista seja um usuário do Tor (que normalmente usa o SOCKS5) acessando um site HTTPS que foi invadido ou algo semelhante” é o mais provável a cair nesse buraco de segurança.

Também: 7 coisas que até mesmo os novos usuários do Linux podem fazer para melhorar a segurança do sistema operacional

A CVE-2023-38545 é um buraco de estouro de memória heap. Ele pode ser explorado para execução remota de código. Já existem provas de conceito mostrando como um ataque poderia ser realizado usando o buraco no curl.

O buraco de segurança foi introduzido em fevereiro de 2020 e afeta as versões do libcurl de 7.69.0 até 8.3.0, inclusive.

Steinberg está constrangido com seu erro:

Lendo o código agora, é impossível não ver o bug. Sim, verdadeiramente dói ter que aceitar o fato de que eu cometi esse erro sem perceber e que a falha permaneceu indetectada no código por 1315 dias. Peço desculpas. Eu sou apenas humano… Em retrospectiva, lançar um estouro de heap em código instalado em mais de 20 bilhões de instâncias não é uma experiência que eu recomendaria.

Nem todos acham que é tão grave assim. Bill Demirkapi, membro da equipe de Resposta a Segurança e Mitigações da Microsoft, twittou no Twitter, também conhecido como X, que “O ‘pior problema de segurança encontrado no curl em muito tempo’ só é acessível se a vítima estiver usando um proxy SOCKS5 e se conectar a um servidor falso ou estiver em um ataque de Homem do Meio [MitM]? Vou voltar a dormir.”

De forma menos sarcástica, a empresa de cadeia de suprimentos de software JFrog observou:

Pode-se supor com boa confiança que essa vulnerabilidade será explorada em ambiente real para execução remota de código, com exploits mais sofisticados sendo desenvolvidos. No entanto, o conjunto de pré-condições necessárias para que uma máquina fique vulnerável (veja a seção anterior) é mais restritivo do que se pensava inicialmente. Portanto, acreditamos que a grande maioria dos usuários do curl não será afetada por essa vulnerabilidade.

Para ser preciso, as pré-condições necessárias para acender o problema em um incêndio de segurança no curl são:

  1. O pedido curl é feito via socks5h.

  2. O buffer de negociação da máquina de estados do curl é menor que ~65k.

  3. A resposta “hello” do servidor SOCKS é atrasada.

  4. O atacante define um nome de destino final maior que o buffer de negociação.

Isso são muitas pré-condições.

Entretanto, considerando o amplo uso do Curl em vários sistemas operacionais, aplicativos e dispositivos IoT, o anúncio antecipado do problema por Steinberg foi uma jogada estratégica inteligente. Ele forneceu às organizações tempo suficiente para auditar seus sistemas, identificar todas as instâncias do curl e libcurl em uso e desenvolver um plano abrangente para a aplicação de patches em toda a empresa.

Também: Novo malware para Android descoberto infectou milhares de dispositivos

O projeto curl não parou por aí; informações sobre as falhas foram compartilhadas simultaneamente com desenvolvedores de várias distribuições Linux, Unix e Unix-like. Essa abordagem colaborativa garantiu que patches e pacotes atualizados estivessem prontos antes do lançamento oficial do curl v8.4.0.

Portanto, tanto eu quanto o projeto curl recomendamos veementemente que os usuários atualizem para a versão 8.4.0 do curl/libcurl ou apliquem patches em versões mais antigas para mitigar os riscos associados a essas vulnerabilidades.

Já que o libcurl/curl é um componente padrão em muitas distribuições Linux e está integrado em inúmeras imagens de contêineres, os usuários de Linux devem estar vigilantes e procurar por lançamentos desses provedores. A maioria dos principais distribuidores do Linux já disponibilizou os patches.