Retrospectiva da promoção de um backdoor no pacote xz

Suspeita-se que o backdoor no pacote xz foi inserido pelo desenvolvedor Jia Tan, que em 2022 obteve status de mantenedor e começou a lançar versões a partir da 5.4.2. Além do projeto xz, o suposto autor do backdoor também participou do desenvolvimento dos pacotes xz-java e xz-embedded, e foi incluído entre os mantenedores do projeto XZ Embedded, utilizado no núcleo do Linux.

Na organização da promoção do backdoor, também foram notados mais dois participantes — Jigar Kumar e Hans Jansen, que, ao que parece, são personagens virtuais. Jigar Kumar, em abril de 2022, ajudou a aprovar os primeiros patches de Jia Tan no xz com a implementação do suporte a filtros de strings e exerceu pressão moral sobre Lasse Collin, o então mantenedor, criticando-o por não ser capaz de cumprir suas funções e por não aceitar patches úteis. Em junho, Lasse Collin concordou que o projeto precisava de um novo mantenedor, lamentou o esgotamento e problemas de saúde mental, e passou o direito de mantenedor para Jia Tan. Depois disso, o usuário Jigar Kumar não apareceu mais na lista de discussão.

Após receber os direitos de mantenedor, Jia Tan começou a adicionar ativamente alterações ao projeto e, nas estatísticas de dois anos, ocupou o segundo lugar entre os desenvolvedores em número de alterações. Em março de 2023, o responsável pelos testes do pacote xz no serviço oss-fuzz foi substituído de Lasse Collin para Jia Tan, e em junho foram aceitas mudanças no xz que adicionaram suporte ao mecanismo IFUNC no liblzma (o construtor crc64_fast foi substituído por ifunc), que mais tarde foi utilizado para organizar o intercâmbio de funções no backdoor. A mudança foi proposta por Hans Jansen, e Jia Tan a aceitou no xz. A conta de Hans Jansen foi criada logo antes do envio da solicitação de pull.

Em julho de 2023, Jia Tan enviou aos desenvolvedores do oss-fuzz um pedido para desativar a verificação ifunc devido à sua incompatibilidade com o modo ‘-fsanitize=address’. No início de fevereiro de 2024, o link para o site do projeto em oss-fuzz e na página principal do tukaani.org foi alterado de ‘tukaani.org/xz/’ para ‘xz.tukaani.org’, onde o subdomínio ‘xz.tukaani.org’ estava hospedado no serviço GitHub Pages e controlado pessoalmente por Jia Tan. Em 23 de fevereiro, foram disponibilizados nos repositórios xz arquivos para testar o funcionamento do decodificador, entre os quais estavam os arquivos bad-3-corrupt_lzma2.xz e good-large_compressed.lzma com um backdoor oculto. Os macros M4 para ativar o backdoor foram incluídos apenas no tar-archive da versão 5.6.0 e foram excluídos do repositório Git, mas apareceram no arquivo .gitignore.

Em 17 de março, Hans Jansen, que anteriormente desenvolveu patches com suporte a IFUNC, foi registrado como um participante do projeto Debian, e em 25 de março enviou uma solicitação para atualizar a versão do pacote xz-utils no repositório Debian. Solicitações de atualização também foram feitas aos desenvolvedores do Fedora e Ubuntu (no Ubuntu, o repositório estava em fase de congelamento e a alteração foi recusada).

A pedidos para atualizar a versão xz, uniram-se alguns usuários que afirmavam que a nova versão corrigia falhas que atrapalhavam o funcionamento, detectadas ao depurar no valgrind (os problemas surgiram devido à identificação incorreta do layout da pilha no manipulador do backdoor, e esses problemas foram abordados pelos desenvolvedores do backdoor na versão xz 5.6.1). O erro também chamou a atenção de Andres Freund, funcionário da Microsoft envolvido no desenvolvimento do PostgreSQL, que identificou a presença do backdoor e alertou a comunidade sobre isso.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster