- Em uma instalação do Debian sid, foram observados alguns sintomas estranhos relacionados ao liblzma (parte do pacote xz), como aumento do uso de CPU no login via SSH e erros no valgrind
- Foi descoberto que a causa do problema era que o repositório upstream e o tarball do xz estavam infectados por um backdoor. Parte do backdoor existe apenas no tarball distribuído
- O script incluído no tarball é executado no final do
configure e, quando certas condições são atendidas, modifica $builddir/src/liblzma/Makefile para injetar código malicioso.
Backdoor no repositório
- A parte principal do backdoor existe em forma criptografada no diretório
tests/files dentro do repositório.
- Esses arquivos não eram usados nos testes da versão 5.6.0, e na versão 5.6.1 houve tentativas de corrigir erros do valgrind e falhas causadas pelo backdoor.
Sistemas afetados
- O script do backdoor é chamado pela primeira vez após o
configure e modifica o processo de build apenas sob certas condições (por exemplo, sistemas Linux x86-64, uso de gcc e do linker GNU, durante builds de pacotes Debian ou RPM).
Impacto no servidor openssh
- Ao usar uma liblzma instalada com backdoor, o login via SSH fica mais lento.
- O openssh não usa liblzma diretamente, mas algumas distribuições, incluindo o Debian, aplicam patches ao openssh para oferecer suporte a notificações do systemd, e a libsystemd depende de lzma.
Análise do código injetado
- A análise foi feita da perspectiva de um observador que não é pesquisador de segurança nem especialista em engenharia reversa.
- O backdoor intercepta a execução por meio de um ifunc resolver e, durante a inicialização do sshd, resolve símbolos para alterar o símbolo
RSA_public_decrypt para o seu próprio código.
Impacto no sshd
RSA_public_decrypt@....plt é alterado para apontar para o código do backdoor, fazendo com que esse código seja chamado durante o login com chave pública.
- Presume-se que isso permita contornar a autenticação ou possibilite execução remota de código.
Relato do bug
- O bug não foi reportado porque há suspeita de envolvimento do repositório upstream.
- A Red Hat atribuiu o identificador CVE-2024-3094 a esse problema.
Detecção de instalações vulneráveis
- Foi fornecido um script para detectar se o binário ssh do sistema é vulnerável.
8 comentários
Tudo o que eu sei sobre o backdoor no xz
Texto escrito por Andres Freund, que descobriu esse backdoor.
É impressionante como isso parece ter sido executado de forma tão planejada;; o processo parece um drama.
Mesmo esquartejado, ainda sai barato.
Por quê?
Como foi um ato de inserir intencionalmente um backdoor em software de código aberto... durante esse processo, também houve ações como conduzir discretamente uma campanha de manipulação da opinião pública
Já houve antes casos de inserir vulnerabilidades de forma maliciosa no kernel do Linux, então é realmente lamentável
Ah, acho que agora entendi a nuance. Obrigado.
Comentários do Hacker News
Links relacionados:
Resumo:
SECURITY.mdao projetoxz-java. O arquivo orienta que, ao encontrar uma vulnerabilidade de segurança, ela não seja divulgada publicamente e seja reportada em privado. Sob outra perspectiva, isso pode ser interpretado como uma tentativa de ganhar tempo para ajustar seu exploit e aproveitar os alvos.5.6.1+really5.4.5-1, que na prática é a versão anterior 5.4 reempacotada como se fosse uma versão nova..tar.xzde software usados como base de certos processos de build, mirando tarballs que distribuem binários pré-compilados, e não tarballs de código-fonte.