По предварителни данни, бэкдорът в пакета xz е бил внедрен от разработчика Jia Tan, който през 2022 година е получил статус на поддръжник и е започнал да издава версии от 5.4.2 насам. Освен проекта xz, предполагаемият автор на бэкдора е участвал в разработката на пакетите xz-java и xz-embedded и е бил включен в списъка на поддръжниците на проекта XZ Embedded, използван в ядрото на Linux.
В организацията на внедряването на бэкдора са забелязани и двама допълнителни участници — Jigar Kumar и Hans Jansen, които очевидно са виртуални персонажи. Jigar Kumar през април 2022 година е подпомогнал включването на ранни патчове на Jia Tan в xz с реализация на поддръжка на стрингови филтри и е оказвал морално натиск върху Lasse Collin, тогавашния поддръжник, критикувайки го, че не е способен да изпълнява задълженията си и не приема полезни патчове. През юни Lasse Collin е признал, че проектът се нуждае от нов поддръжник, е жалвал за прегаряне и проблеми с психичното здраве и е предал правата на поддръжник на Jia Tan. След това потребителят Jigar Kumar повече не се е появявал в разпространението.
Получавайки правата на поддръжник, Jia Tan активно започва да добавя изменения в проекта и по статистика за две години заема второ място сред разработчиците по брой на изменения. През март 2023 година отговорният за тестването на пакета xz в услугата oss-fuzz е заменен от Lasse Collin на Jia Tan, а през юни в състава на xz са приети изменения, добавящи в liblzma поддръжка на механизма IFUNC (конструкторът crc64_fast е заменен с ifunc), който по-късно е бил използван за организиране на прихващане на функции в бэкдора. Предложението е направено от Hans Jansen, а Jia Tan го е приел в състава на xz. Акаунтът на Hans Jansen е създаден непосредствено преди изпращането на pull-заявката.
През юли 2023 г. Jia Tan изпрати на разработчиците на oss-fuzz искане за деактивиране на проверката ifunc поради неговата несъвместимост с режима «-fsanitize=address». В началото на февруари 2024 г. връзката към сайта на проекта в oss-fuzz и на главната страница на tukaani.org беше променена от «tukaani.org/xz/» на «xz.tukaani.org», където поддоменът «xz.tukaani.org» беше хостван на GitHub Pages и контролирано лично от Jia Tan. На 23 февруари в репозитория xz бяха публикувани архиви за тестване на работата на декодера, сред които бяха файлът bad-3-corrupt_lzma2.xz и good-large_compressed.lzma със скрит бекдор. M4 макроси за активиране на бекдора бяха включени само в tar архива с релиза 5.6.0 и бяха изключени от Git репозитория, но се прокраднаха в файла .gitignore.
На 17 март Hans Jansen, който преди това разработи пачове с поддръжка на IFUNC, беше регистриран като участник в проекта Debian, а на 25 март той изпрати искане за ъпдейт на версията на пакета xz-utils в репозитория на Debian. Искаха ъпдейт на версията също така бяха изпратени на разработчиците на Fedora и Ubuntu (в Ubuntu репозитория беше в етап на замразяване и промяната беше отхвърлена).
К исканията за ъпдейт на версията xz се присъединиха и някои потребители, които твърдяха, че в новата версия са отстранени проблемите, пречещи на работата, открити по време на отстраняване на грешки в valgrind (проблемите възникваха поради некоректно определяне на разположението на стека в обработчика на бекдора, а разработчиците на бекдора се опитаха да разрешат тези проблеми в версия xz 5.6.1). С проблема се заинтригува и Andres Freund, служител на Microsoft, участващ в разработката на PostgreSQL, който откри бекдора и уведоми обществото за него.
Източник: opennet.ru
