Une backdoor découverte dans XZ Utils (CVE-2024-3094)

Reading Time: 4 minutes

Ce vendredi 29 mars 2024, un certain Andres Freund a découvert une backdoor dans la suite XZ Utils.

Cela nous rappelle la backdoor qui avait été injectée dans PHP (https://flast101.github.io/php-8.1.0-dev-backdoor-rce/) ou même encore la très connue version 2.3.4 de vsftpd dans laquelle on pouvait également exécuter des commandes sans avoir besoin de s’authentifier sur la machine.


Description

XZ Utils est un ensemble d’outils qui permettent de compresser/décompresser des données sans perdre d’information.

Cette vulnérabilité est annoncée critique comme en témoigne son score CVSS (CVE-2024-3094) :

file

file

Source: https://nvd.nist.gov/vuln/detail/CVE-2024-3094


Vulnérabilité

Pour résumer, il a été détecté des anomalies au niveau de SSH (utilisation excessive de CPU) ainsi que des erreurs concernant valgrind (outil de debug).

Tout le génie de la backdoor (si on peut appeler ça ainsi), se trouve dans le fait qu’elle ne se situe pas dans le code source mais uniquement dans les tarballs (archive tar à télécharger).

Le code inséré dans l’archive tente de jouer avec les librairies utilisées par certaines distributions afin d’intéragir avec SSH. Des symboles comme RSA_public_decrypt@....plt sont appelés, ce qui ne laisse aucun doute sur la volonté de la personne derrière.

Pour obtenir la description technique complète, vous pouvez vous référer à ce post créé par Andres Freund : https://www.openwall.com/lists/oss-security/2024/03/29/4

Vous pouvez retrouver une autre explication technique sur ce blog : https://boehs.org/node/everything-i-know-about-the-xz-backdoor

Pour les liens qui sont inaccessibles car le compte Github a été désactivé, vous pouvez quand même les visualiser grâce à la Wayback Machine.


Êtes-vous affecté par la vulnérabilité ?

Les versions affectées sont la 5.6.0 ainsi que 5.6.1.

Pour savoir si votre système est affecté par cette vulnérabilité, vous pouvez visualiser les versions actuelles utilisées dans différentes distributions : https://repology.org/project/xz/versions

Vous pouvez également directement exécuter la commande suivante et vérifier le numéro de version de l’outil :
xz --version

Il est recommandé de vous rendre sur le site associé à votre distribution pour savoir comment mettre à jour votre système afin de patcher la vulnérabilité.


Conclusion

On ne sait pas encore si le mainteneur s’est greffé au projet depuis le début afin d’y intégrer la backdoor ou si son compte a été compromis entre temps.

Cependant, quelques indices pourrait nous laisser croire à une compromission comme en témoigne cette capture d’un utilisateur sur Twitter qui pointe cette anomalie :
file

On y voit clairement que les horaires de mises à jour ne correspondent pas avec l’historique du mainteneur depuis 2022.

Si vous souhaitez en savoir plus, vous pouvez suivre la discussion sur cette mailing list : https://news.ycombinator.com/item?id=39865810


Sources