Lasse Collin, the previous maintainer of the xz project, transferred the responsibilities to the new maintainer Jia Tan in 2022, whose actions led to the introduction of a backdoor. He released corrective versions of the XZ Utils package 5.2.13, 5.4.7, and 5.6.2, which remove the backdoor components and other suspicious changes introduced during the previous maintainer's malicious activities.
Additionally, a report has been published reviewing the Git repository and changes made since December 2022 during Jia Tan's tenure as maintainer. The changes are broken down at the individual commit level. The commits in the repository were not signed with a digital signature, but no evidence of forgery by the committers was found. A total of 8 malicious commits have been removed from the repository.
The CRC CLMUL code, which causes false positives during checks in MSAN (Memory Sanitizer) and problems with OSS Fuzz, has not yet been removed from the codebase. It is planned to be reworked in the future, but for now, it has been decided not to touch it to avoid regressions in old branches. No suspicious changes were found in old commits added before the backdoor-related changes. po localization files, metadata in tar files, and archives with releases and translations were also reviewed separately.
Among the changes, the inclusion of accumulated bug fixes and the removal of support for the IFUNC mechanism provided in Glibc for indirect function calls, which was exploited for function interception in the backdoor, are noted. It has been observed that using IFUNC complicates the code, and the performance gain from it is not significant. As a precaution, the XZ logo, PDF versions of man pages, and two tests for x86 and SPARC architectures, which processed object files as input, were also removed from the package with the source code.
The xzdec decoder has been updated to support version 4 of the Landlock application isolation mechanism ABI. The Autotools build scripts now include the option "--enable-doxygen," and in the CMake scripts, the ENABLE_DOXYGEN parameter has been added for generating and installing documentation for the liblzma API using Doxygen. The already generated documentation has been removed from the package.
Source: opennet.ru
