Si sospetta che un backdoor nel pacchetto xz sia stato inserito dallo sviluppatore Jia Tan, che nel 2022 ha ottenuto lo status di manutentore e ha rilasciato versioni a partire dalla 5.4.2. Oltre al progetto xz, si ritiene che l'autore del backdoor abbia partecipato anche allo sviluppo dei pacchetti xz-java e xz-embedded, ed è stato incluso tra i manutentori del progetto XZ Embedded, utilizzato nel kernel Linux.
Nell'organizzazione di promozione del backdoor sono stati notati anche altri due partecipanti — Jigar Kumar e Hans Jansen, che sembrerebbero essere personaggi virtuali. Jigar Kumar, ad aprile 2022, ha contribuito all'accettazione di patch precoci di Jia Tan in xz con l'implementazione del supporto per i filtri delle stringhe e ha esercitato una pressione morale su Lasse Collin, il manutentore di allora, criticando la sua incapacità di svolgere i propri compiti e la sua mancanza di iniziative utili. A giugno, Lasse Collin ha concordato che il progetto aveva bisogno di un nuovo manutentore, lamentandosi di burnout e problemi di salute mentale, e ha trasferito i diritti di manutentore a Jia Tan. Dopo ciò, l'utente Jigar Kumar non è più apparso nella mailing list.
Dopo aver ottenuto i diritti di mantenitore, Jia Tan ha iniziato ad apportare attivamente modifiche al progetto e, secondo le statistiche, ha ottenuto il secondo posto tra gli sviluppatori per numero di modifiche negli ultimi due anni. A marzo 2023, il responsabile dei test del pacchetto xz nel servizio oss-fuzz è stato sostituito da Lasse Collin a Jia Tan, e a giugno sono state accettate modifiche nel xz che hanno aggiunto al liblzma il supporto per il meccanismo IFUNC (il costruttore crc64_fast è stato sostituito da ifunc), successivamente utilizzato per organizzare l'intercettazione delle funzioni nel retro di porta. Modifica proposta da Hans Jansen, e Jia Tan l'ha accettata nel xz. L'account di Hans Jansen è stato creato immediatamente prima dell'invio della pull request.
A luglio 2023, Jia Tan ha inviato agli sviluppatori di oss-fuzz una richiesta per disattivare il controllo ifunc a causa della sua incompatibilità con l'opzione «-fsanitize=address». All'inizio di febbraio 2024, il link al sito del progetto in oss-fuzz e sulla homepage di tukaani.org è stato modificato da «tukaani.org/xz/» a «xz.tukaani.org», dove il sottodominio «xz.tukaani.org» era ospitato su GitHub Pages e controllato personalmente da Jia Tan. Il 23 febbraio sono stati pubblicati nel repository xz archivi per testare il funzionamento del decodificatore, tra cui i file bad-3-corrupt_lzma2.xz e good-large_compressed.lzma contenenti un backdoor nascosto. I macro M4 per attivare il backdoor erano inclusi solo nell'archivio tar con la release 5.6.0 ed erano stati esclusi dal repository Git, ma erano emersi nel file .gitignore.
Il 17 marzo, Hans Jansen, che aveva precedentemente sviluppato patch per il supporto di IFUNC, è stato registrato come partecipante del progetto Debian, e il 25 marzo ha inviato una richiesta per l'aggiornamento della versione del pacchetto xz-utils nel repository Debian. Richieste di aggiornamento versione sono state inviate anche agli sviluppatori di Fedora e Ubuntu (nel caso di Ubuntu, il repository era in fase di freeze e la modifica è stata rifiutata).
Alla richiesta di aggiornare la versione xz si sono uniti anche alcuni utenti che hanno segnalato che nella nuova versione sono stati risolti i malfunzionamenti che interferivano con il lavoro durante il debug in valgrind (i problemi erano causati da una errata definizione della disposizione dello stack nell'handler del backdoor e questi problemi sono stati affrontati dai programmatori del backdoor nella versione xz 5.6.1). Anche Andres Freund, un collaboratore di Microsoft coinvolto nello sviluppo di PostgreSQL, ha mostrato interesse per il malfunzionamento, rivelando l'esistenza del backdoor e avvisando la comunità al riguardo.
Fonte: opennet.ru
