Vermutlich wurde ein Backdoor im Paket xz von dem Entwickler Jia Tan eingebaut, der 2022 den Status eines Betreuers erhielt und seit Version 5.4.2 Releases veröffentlichte. Neben dem Projekt xz war der vermeintliche Autor des Backdoors auch an der Entwicklung der Pakete xz-java und xz-embedded beteiligt und wurde in die Liste der Maintainer des Projekts XZ Embedded aufgenommen, das im Linux-Kernel verwendet wird.
In der Organisation zur Promotion des Backdoors wurden auch zwei weitere Teilnehmer beobachtet — Jigar Kumar und Hans Jansen, die anscheinend virtuelle Personen sind. Jigar Kumar unterstützte im April 2022 die Annahme früherer Patches von Jia Tan in xz zur Implementierung der Unterstützung von Stringfiltern und übte moralischen Druck auf Lasse Collin, den damaligen Betreuer, aus, indem er kritisierte, dass dieser nicht in der Lage sei, seinen Pflichten nachzukommen und nützliche Patches nicht annehme. Im Juni stimmte Lasse Collin zu, dass das Projekt einen neuen Betreuer benötige, beklagte sich über Burnout und psychische Gesundheitsprobleme und übergab das Maintainer-Recht an Jia Tan. Danach trat der Nutzer Jigar Kumar nicht mehr in der Mailingliste auf.
Nachdem Jia Tan die Rechte eines Maintainers erhalten hatte, begann er aktiv, Änderungen am Projekt vorzunehmen und belegte in den letzten zwei Jahren mit der höchsten Anzahl an Änderungen den zweiten Platz unter den Entwicklern. Im März 2023 wurde der für das Testing des xz-Pakets bei oss-fuzz zuständige Mitarbeiter von Lasse Collin auf Jia Tan ersetzt, und im Juni wurden Änderungen in xz aufgenommen, die die Unterstützung für den IFUNC-Mechanismus in liblzma hinzufügten (der Konstruktor crc64_fast wurde durch ifunc ersetzt), der später für die Organisation des Funktionsinterceptors im Backdoor verwendet wurde. Die Änderungen wurden von Hans Jansen vorgeschlagen und von Jia Tan in xz angenommen. Das Konto von Hans Jansen wurde direkt vor dem Absenden des Pull-Requests erstellt.
Im Juli 2023 schickte Jia Tan den Entwicklern von oss-fuzz eine Anfrage zur Deaktivierung der ifunc-Prüfung aufgrund ihrer Inkompatibilität mit dem Modus „-fsanitize=address“. Anfang Februar 2024 wurde der Link zur Projektwebsite in oss-fuzz und auf der Hauptseite von tukaani.org von „tukaani.org/xz/“ auf „xz.tukaani.org“ geändert, wobei die Subdomain „xz.tukaani.org“ auf dem Dienst GitHub Pages gehostet und persönlich von Jia Tan kontrolliert wurde. Am 23. Februar wurden im Repository xz Archive zum Testen des Decoders veröffentlicht, darunter die Dateien bad-3-corrupt_lzma2.xz und good-large_compressed.lzma mit einem versteckten Backdoor. M4-Makros zur Aktivierung der Backdoor waren nur im tar-Archiv der Version 5.6.0 enthalten und wurden aus dem Git-Repository ausgeschlossen, jedoch im .gitignore-Datei sichtbar.
Am 17. März wurde Hans Jansen, der zuvor Patches zur Unterstützung von IFUNC entwickelt hatte, als Teilnehmer des Debian-Projekts registriert, und am 25. März wurde von ihm eine Anfrage zur Aktualisierung der Paketversion xz-utils im Debian-Repository gesendet. Auch an die Entwickler von Fedora und Ubuntu wurden Anfragen zur Aktualisierung der Version gerichtet (im Ubuntu-Repository befand sich die Version in der Freeze-Phase und die Änderung wurde abgelehnt).
Einige Nutzer haben sich ebenfalls für ein Update der xz-Version ausgesprochen und berichtet, dass in der neuen Version störende Fehler behoben wurden, die beim Debuggen mit valgrind auftraten (die Probleme entstanden durch eine fehlerhafte Definition des Stack-Layouts im Backdoor-Handler, und die Entwickler der Backdoor haben versucht, diese Probleme in der Version xz 5.6.1 zu beheben). Auch Andres Freund, ein Mitarbeiter von Microsoft, der an der Entwicklung von PostgreSQL beteiligt ist, hat sich für den Fehler interessiert, der das Vorhandensein des Backdoors aufdeckte und die Community darüber informierte.
Quelle: opennet.ru
