Foto macro de bandeira vermelha de brinquedo
Unsplash/sigmund

Pesquisadores descobriram um backdoor malicioso em uma ferramenta de compressão que se infiltrou em distribuições Linux amplamente utilizadas, incluindo aquelas da Red Hat/Fedora, Debian Testing/Sid e Arch Linux, além de ferramentas do MacOS, como o HomeBrew. A utilidade de compressão, conhecida como xz Utils, introduziu o código malicioso nas versões 5.6.0 e 5.6.1.

O desenvolvedor que descobriu a vulnerabilidade agora conhecida como CVE-2024-3094, Andres Freund, informou que não há relatos conhecidos dessas versões sendo incorporadas em qualquer lançamento de produção para as principais distribuições Linux. No entanto, tanto a Red Hat quanto a Debian relataram que os lançamentos beta recentemente publicados usaram pelo menos uma das versões com backdoor.

O backdoor foi descoberto antes que as versões maliciosas do xz Utils fossem adicionadas às versões de produção do Linux. Will Dormann, analista sênior de vulnerabilidades da empresa de segurança Analygence, disse em uma entrevista online que “não está realmente afetando ninguém no mundo real”.

Vários aplicativos incluídos no gerenciador de pacotes HomeBrew para MacOS dependem da versão 5.6.1 do xz Utils. O HomeBrew agora voltou a utilidade para a versão 5.4.6.

Os primeiros sinais do backdoor foram introduzidos em uma atualização de 23 de fevereiro que adicionou código ofuscado. Uma atualização no dia seguinte incluiu um script de instalação malicioso que se injetou em funções usadas pelo sshd, o arquivo binário que faz o SSH funcionar.

As mudanças maliciosas foram submetidas por JiaT75, um dos dois principais desenvolvedores do xz Utils com anos de contribuições para o projeto. “Dada a atividade ao longo de várias semanas, o committer está diretamente envolvido ou houve uma violação bastante grave de seu sistema”, escreveu Freund.

captura de tela do repositório do xz no github
GitHub/Reprodução

Depois de descoberto o ocorrido, o GitHub desabilitou o repositório do xz Utils na plataforma. Ainda não há versões novas da biblioteca com o backdoor removido.

Downgrade

Como ainda não há uma atualização do xz Utils com uma correção da vulnerabilidade, a recomendação é que os usuários com versões 5.6 ou 5.6.1 do xz façam um downgrade para versões anteriores, como a 5.4.1 ou 5.4.6 – dependendo da que estiver disponível.

Veja abaixo como fazer o downgrade nas principais distribuições Linux afetadas por esta vulnerabilidade. Lembre-se de que fazer o downgrade de bibliotecas pode ter implicações para outros pacotes e programas que dependem dessas bibliotecas. Portanto, é importante ter certeza de que o downgrade não causará problemas com outros softwares em seu sistema.

Debian

  1. Primeiro, você precisa verificar a versão atual da biblioteca que deseja fazer o downgrade. Você pode fazer isso usando o comando apt policy <nome_da_biblioteca>. Isso mostrará a versão atualmente instalada e as versões disponíveis nos repositórios.
  2. Depois de identificar a versão para a qual deseja fazer o downgrade, você pode usar o comando sudo apt install <nome_da_biblioteca>=<versão>. Por exemplo, se você deseja fazer o downgrade da biblioteca xz-utils para a versão 5.4.1, você usaria o comando sudo apt install xz-utils=5.4.1`.
  3. O sistema irá então baixar e instalar a versão especificada da biblioteca. Se houver dependências que precisam ser resolvidas, o apt irá informá-lo e pedir sua confirmação antes de continuar.

Fedora

  1. Verifique a versão atual da biblioteca que deseja fazer o downgrade. Use o comando dnf info <nome_da_biblioteca>. Isso mostrará a versão atualmente instalada e as versões disponíveis nos repositórios.
  2. Após de encontrar a versão para a qual deseja instalar, você pode usar o comando sudo dnf downgrade <nome_da_biblioteca>. Por exemplo, se você deseja fazer o downgrade da biblioteca xz para a versão 5.4.6, você usaria o comando sudo dnf downgrade xz-5.4.6.
  3. O sistema baixará e instalará a versão especificada da biblioteca. Caso haja dependências que precisam ser resolvidas, o dnf irá informar e pedir sua confirmação antes de continuar.

Arch Linux

  1. Primeiro, você precisa verificar a versão atual da biblioteca que deseja fazer o downgrade. Você pode fazer isso abrindo o Terminal usando o comando pacman -Qi <nome_da_biblioteca>.

  2. Depois, verifique quais versões ainda estão no cache do sistema com o comando ls /var/cache/pacman/pkg/xz*. Ela deve mostrar uma lista de arquivos terminados em tar.zst e tar.zst.sig.

  3. Depois de identificar a versão para a qual deseja instalar, você pode usar o comando sudo pacman -U /var/cache/pacman/pkg/<nome_da_biblioteca>-<versão>.pkg.tar.zst. Se você deseja fazer o downgrade da biblioteca xz para a versão 5.4.6, você deve usar o comando o comando sudo pacman -U /var/cache/pacman/pkg/xz-5.4.6-1.pkg.tar.zst.

Previnindo atualizações

Para prevenir que a biblioteca seja atualizada no Arch Linux no futuro, você pode adicionar o nome da biblioteca à seção IgnorePkg do arquivo pacman.conf. Para fazer isso, você pode usar um editor de texto como o nano com o comando sudo nano /etc/pacman.conf. Em seguida, adicione xz no campo IgnorePkg = dentro arquivo e salve as alterações com Ctrl+O e feche com Ctrl+X.