Il est présumé qu'une porte dérobée a été intégrée au paquet xz par le développeur Jia Tan, qui a obtenu le statut de mainteneur en 2022 et a commencé à publier des versions dès la version 5.4.2. En plus du projet xz, l'auteur présumé de la porte dérobée a également participé au développement des paquets xz-java et xz-embedded, et a été inclus parmi les mainteneurs du projet XZ Embedded, utilisé dans le noyau Linux.
Deux autres participants ont également été remarqués dans l'organisation de la promotion de la porte dérobée — Jigar Kumar et Hans Jansen, qui semblent être des personnages virtuels. Jigar Kumar a aidé à l'adoption de premiers correctifs de Jia Tan pour xz en avril 2022, incluant la prise en charge des filtres de chaîne, et a exercé une pression morale sur Lasse Collin, le mainteneur de l’époque, en critiquant son incapacité à remplir ses obligations et son refus d'accepter des correctifs utiles. En juin, Lasse Collin a admis que le projet avait besoin d'un nouveau mainteneur, a fait part de son burn-out et de ses problèmes de santé mentale, et a transféré le droit de mainteneur à Jia Tan. Peu après, l'utilisateur Jigar Kumar n'est plus apparu dans la mailing list.
Après avoir obtenu les droits de mainteneur, Jia Tan a commencé à ajouter activement des modifications au projet et, selon les statistiques des deux dernières années, il a occupé la deuxième place parmi les développeurs en nombre de changements. En mars 2023, le responsable des tests du paquet xz pour le service oss-fuzz a été remplacé de Lasse Collin à Jia Tan, et en juin, des modifications ajoutant au liblzma la prise en charge du mécanisme IFUNC (le constructeur crc64_fast a été remplacé par ifunc) ont été acceptées dans xz, ce qui a ensuite été utilisé pour intercepter des fonctions dans la porte dérobée. La modification a été proposée par Hans Jansen et acceptée par Jia Tan dans xz. Le compte de Hans Jansen a été créé juste avant l'envoi de la demande de tirage.
En juillet 2023, Jia Tan a demandé aux développeurs d'oss-fuzz de désactiver la vérification ifunc en raison de son incompatibilité avec le mode "-fsanitize=address". Au début de février 2024, le lien vers le site du projet dans oss-fuzz et sur la page d'accueil de tukaani.org a été modifié de "tukaani.org/xz/" à "xz.tukaani.org", où le sous-domaine "xz.tukaani.org" était hébergé sur GitHub Pages et contrôlé personnellement par Jia Tan. Le 23 février, des archives pour tester le fonctionnement du décodeur ont été mises en ligne dans le dépôt xz, parmi lesquelles se trouvaient les fichiers bad-3-corrupt_lzma2.xz et good-large_compressed.lzma contenant une porte dérobée cachée. Les macros M4 pour activer la porte dérobée étaient incluses uniquement dans l'archive tar de la version 5.6.0 et en ont été exclues du dépôt Git, mais ont été révélées dans le fichier .gitignore.
Le 17 mars, Hans Jansen, qui avait précédemment développé des patches avec prise en charge d'IFUNC, a été enregistré en tant que participant au projet Debian, et le 25 mars, il a envoyé une demande de mise à jour de la version du paquet xz-utils dans le dépôt Debian. Des demandes de mise à jour de version ont également été envoyées aux développeurs de Fedora et d'Ubuntu (dans le dépôt Ubuntu, la version était en phase de gel et le changement a été rejeté).
Certaines demandes de mise à jour de la version xz ont également été soutenues par des utilisateurs, affirmant que la nouvelle version corrigeait des plantages gênants identifiés lors du débogage avec valgrind (les problèmes provenaient d'une mauvaise définition de la disposition de la pile dans le gestionnaire de la porte dérobée et les développeurs de la porte dérobée ont essayé de résoudre ces problèmes dans la version xz 5.6.1). Le plantage a également suscité l'intérêt d'Andres Freund, un employé de Microsoft participant au développement de PostgreSQL, qui a découvert la présence de la porte dérobée et a alerté la communauté.
Source : opennet.ru
