CEVIU Logo
Voltar

Dois anos após o xz-utils: o que os scanners de CVE ainda não conseguem detectar

Aprofundamento CEVIU

Aprofundamento

O backdoor do xz-utils não foi um erro de programação, mas uma operação de engenharia social e manipulação de confiança que durou 28 meses. Jia Tan começou a contribuir em janeiro de 2022, ganhou status de mantenedor em dezembro de 2022 e só então inseriu o código malicioso, não no repositório git, mas em arquivos binários de teste dentro dos tarballs oficiais de release. Isso explica por que scanners de CVE falharam: eles verificam hashes de fonte, assinaturas de commits e histórico de diff, mas não inspecionam conteúdo embutido em artefatos de build pré-compilados. O backdoor atuava diretamente no OpenSSH, explorando uma cadeia de chamadas nativas via libsystemd, sem precisar de autenticação, bastava ter uma chave Ed448 específica para executar código como root antes mesmo do login.

A lição técnica é clara: dependências não são seguras só porque passam em verificações de integridade baseadas em repositórios. A ameaça real está na fase de empacotamento, onde o controle sobre os artefatos finais (tar.gz, .whl, .tgz) pode ser usurpado sem deixar rastro no git. É por isso que a CEVIU já alertou, em maio, sobre ataques que se escondem exatamente nesse ponto, como o TrapDoor, que injeta código em scripts postinstall, ou o Laravel-Lang, que redireciona tags do GitHub para forks maliciosos. O padrão é o mesmo: o código-fonte limpo, o artefato contaminado.

O que mudou

Em maio, a CEVIU destacou campanhas como TrapDoor e Laravel-Lang que exploravam falhas de confiança em processos de publicação, mas eram ataques pontuais, com duração de dias ou semanas. O xz-utils é diferente: foi uma operação estrutural de longo prazo, com planejamento de dois anos, uso de contas falsas para pressionar mantenedores e inserção silenciosa em binários oficiais. Também é a primeira vez que um backdoor dessa escala foi encontrado em uma biblioteca tão crítica e amplamente vinculada ao sistema operacional, afetando diretamente o OpenSSH em distros como Debian testing e Fedora Rawhide. Antes, víamos ataques em pacotes de aplicação (npm, PyPI); agora, o alvo é a infraestrutura de execução do próprio SO.

Por que isso importa

Empresas não conseguem proteger seus ambientes apenas com scanners de CVE ou atualizações automáticas. Se um atacante controla o processo de build e distribuição de uma dependência fundamental, como xz-utils, usado por quase todos os sistemas Linux para descompressão, ele pode contornar todas as camadas de segurança tradicionais: SCA, SBOM, assinatura de commits, até mesmo CI/CD com análise estática. A consequência prática é que equipes de segurança precisam priorizar controle de artefatos (não só de código), monitoramento de mudanças em mantenedores e chaves de assinatura, e validação de integridade de binários em tempo de runtime, não só de source. Isso já era urgente após os casos do VS Code malicioso e do InvisibleFerret compilado em Cython, mas o xz-utils provou que o risco não está mais nas bordas, está no coração da stack.

Linha do tempo

  1. Jia Tan inicia contribuições no projeto xz-utils

  2. Jia Tan torna-se mantenedor do xz-utils

  3. Backdoor inserido em arquivos binários de teste nos tarballs de release

  4. Lançamento da versão comprometida xz-utils 5.6.0

  5. Lançamento da versão comprometida xz-utils 5.6.1

  6. Descoberta da CVE-2024-3094 por Andres Freund

  7. Lançamento da correção xz-utils 5.6.2

  8. Análise da CEVIU sobre limitações estruturais dos scanners de CVE após dois anos do xz-utils

Perguntas frequentes

Por que scanners de CVE não detectaram o backdoor do xz-utils?

Porque a CVE é um catálogo de vulnerabilidades conhecidas em código-fonte ou versões específicas, e o backdoor não estava no repositório git, nem em diffs públicos. Ele foi embutido em arquivos binários de teste dentro dos tarballs de release, fora do alcance de ferramentas que analisam apenas commits, tags ou hashes de source.

Quais sistemas ainda estão em risco, mesmo após a correção?

Imagens Docker do Debian no Docker Hub ainda continham o backdoor em agosto de 2025, segundo a Binarly. Distribuições em modo de desenvolvimento (como Fedora Rawhide e Debian testing) foram as mais afetadas, mas qualquer ambiente que tenha instalado as versões 5.6.0 ou 5.6.1 entre dezembro de 2023 e maio de 2024 permanece vulnerável até o downgrade ou atualização para 5.6.2.

O que muda na prática para equipes de DevSecOps?

É preciso parar de confiar cegamente em lockfiles e hashes de pacotes. Cada PR deve validar mudanças em chaves de assinatura, novos mantenedores, alterações em scripts de build e diferenças em artefatos binários, não só em código-fonte. Ferramentas como OSV.dev devem ser integradas ao pipeline, mas não substituem revisão humana em pontos críticos de publicação.

Esse ataque tem ligação com outros casos recentes da CEVIU?

Sim. O modus operandi do xz-utils replica táticas vistas em maio: o Laravel-Lang usou redirecionamento de tags do GitHub, o TrapDoor explorou scripts postinstall, e a extensão maliciosa do VS Code comprometeu o tooling de desenvolvedores. Todos exploram a mesma brecha, a confiança cega em cadeias de publicação automatizadas, não em falhas de código.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Segurança da Informação
Publicado
04 de junho de 2026
Editoria
CEVIU Segurança da Informação

Quer receber mais sobre CEVIU Segurança da Informação?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser