Skip to content

Porte dérobée dans XZ Utils (CVE-2024-3094)

Une campagne d'ingénierie sociale pluriannuelle menée par un personnage de mainteneur nommé « Jia Tan » a implanté une porte dérobée SSH dissimulée dans la bibliothèque de compression XZ Utils (liblzma) versions 5.6.0 et 5.6.1, notée CVSS 10,0 — découverte par hasard quelques jours avant qu'elle ne puisse atteindre les versions stables de Linux dans le monde entier.

Partie de la campagnejia tan xz backdoor
Victime
XZ Utils / écosystème open source Linux

Le 29 mars 2024, l'ingénieur de Microsoft Andres Freund a annoncé sur la liste de diffusion oss-security qu'il avait découvert une porte dérobée délibérément implantée dans XZ Utils, une bibliothèque de compression de données quasi omniprésente dont le composant liblzma est lié par d'innombrables programmes Linux — y compris, indirectement, le sshd d'OpenSSH sur plusieurs distributions. Référencée CVE-2024-3094 avec le score CVSS maximal de 10,0, la porte dérobée était l'aboutissement d'une campagne d'ingénierie sociale pluriannuelle visant à prendre le contrôle d'un projet open source critique. Elle a été découverte par hasard, quelques jours avant que les versions compromises n'atteignent des versions stables largement déployées.

Comment elle a été découverte

Freund, développeur de PostgreSQL, a remarqué que les connexions SSH prenaient environ une demi-seconde de plus que prévu et que les processus sshd consommaient une quantité inhabituelle de CPU. Le profilage a relié ce surcoût à liblzma. En enquêtant davantage, il a mis au jour du code obfusqué qui s'accrochait au chemin de résolution de symboles utilisé par sshd, permettant à un attaquant détenant une clé privée Ed448 spécifique d'obtenir une exécution de code à distance en envoyant une charge d'authentification forgée — une porte dérobée distante quasi invisible, verrouillée par clé.

Le jeu de longue haleine

La porte dérobée n'était pas un commit isolé. À partir de 2021 environ, un personnage de mainteneur nommé « Jia Tan » (JiaT75) a bâti sa crédibilité dans la communauté XZ Utils par des contributions légitimes. En 2022–2023, un concert de comptes fantoches apparents a poussé le mainteneur d'origine surchargé à céder ses responsabilités, et Jia Tan s'est finalement vu accorder l'autorité de commit et de publication.

La charge malveillante a ensuite été introduite par étapes. Le code dangereux n'était pas présent dans le dépôt Git lisible par l'humain ; il était au contraire dissimulé dans des fichiers « de test » binaires déguisés et activé par un build-to-host.m4 modifié qui n'existait que dans les archives de publication. Lors de la compilation sur les systèmes Linux x86-64 utilisant glibc et GCC, la logique de build extrayait et injectait l'objet malveillant dans liblzma — garantissant qu'une revue ordinaire du code source de l'arbre Git ne le révélerait pas.

Impact et confinement

  • Les versions affectées étaient XZ Utils 5.6.0 (24 février 2024) et 5.6.1 (9 mars 2024).
  • La porte dérobée a atteint les branches de développement et de test de Fedora Rawhide/40-bêta, Debian unstable/testing, Kali Linux et Arch Linux — mais la plupart des versions stables de production n'avaient pas encore livré les versions compromises.
  • La CISA a exhorté à revenir à une version saine connue telle que la 5.4.6 ; Red Hat, SUSE et Debian ont rétabli les paquets le jour de la divulgation ; Canonical a reporté la bêta d'Ubuntu 24.04 LTS par précaution.
  • Une 5.6.2 saine a été publiée en mai 2024. Aucune exploitation confirmée en conditions réelles contre des systèmes de production n'a été établie, la découverte ayant devancé un déploiement à grande échelle.

Pourquoi c'est important

XZ Utils est le cas emblématique de la subversion de la chaîne d'approvisionnement open source par la confiance, et non par l'exploitation technique. L'attaquant n'a pas compromis un serveur ; il s'est frayé un chemin par ingénierie sociale jusqu'au statut de mainteneur d'une bibliothèque fondamentale et a militarisé le pipeline de build afin que la porte dérobée n'apparaisse jamais dans le code source révisé. Sa découverte a tenu à un seul ingénieur remarquant une demi-seconde de latence — un rappel inquiétant de l'étroitesse de la marge. L'incident a catalysé des changements durables : un examen attentif de l'épuisement des mainteneurs et des projets à mainteneur unique, des initiatives de financement pour les infrastructures open source critiques, une adoption plus large des builds reproductibles et de la comparaison archive-contre-dépôt, et une attention renouvelée à l'hypothèse selon laquelle « de nombreux yeux » rendraient automatiquement sûr le code open source.

Chronologie

  1. Un personnage nommé « Jia Tan » (JiaT75) commence à contribuer au projet XZ Utils, gagnant progressivement la confiance du mainteneur d'origine au fil d'une campagne pluriannuelle.

  2. Sous la pression de comptes fantoches poussant le mainteneur surchargé à ajouter un co-mainteneur, Jia Tan se voit accorder l'autorité de commit et de publication sur XZ Utils.

  3. XZ Utils 5.6.0 est publié, contenant du code malveillant obfusqué dissimulé dans des fichiers de test binaires déguisés et un build-to-host.m4 modifié dans l'archive de publication.

  4. XZ Utils 5.6.1 est publié, affinant la porte dérobée ; la logique de build malveillante s'injecte dans liblzma lors de la compilation sur les systèmes Linux x86-64 glibc/GCC.

  5. L'ingénieur de Microsoft Andres Freund, enquêtant sur une latence de connexion SSH d'environ 500 ms et une forte consommation CPU dans liblzma, identifie la porte dérobée et la signale à la liste oss-security.

  6. La CISA émet une alerte ; Red Hat, SUSE et Debian rétablissent les paquets affectés vers des versions sûres ; CVE-2024-3094 reçoit un score CVSS de 10,0.

  7. Canonical reporte d'une semaine la bêta d'Ubuntu 24.04 LTS par précaution, le temps que l'écosystème audite la chaîne d'outils affectée.

  8. Une version XZ Utils 5.6.2 saine est publiée ; l'analyse de l'opération pluriannuelle et du personnage Jia Tan se poursuit dans la communauté de la sécurité.

Sources

  1. cisa.govhttps://www.cisa.gov/news-events/alerts/2024/03/29/reported-supply-chain-compromise-affecting-xz-utils-data-compression-library-cve-2024-3094
  2. nvd.nist.govhttps://nvd.nist.gov/vuln/detail/CVE-2024-3094
  3. en.wikipedia.orghttps://en.wikipedia.org/wiki/XZ_Utils_backdoor
  4. openwall.comhttps://www.openwall.com/lists/oss-security/2024/03/29/4

Incidents liés

Chaîne d’approvisionnementEn cours

L'attaque sur la chaîne d'approvisionnement « Atomic Arch » détourne plus de 400 paquets AUR d'Arch Linux pour déployer un voleur d'identifiants et un rootkit eBPF

Les chercheurs de Sonatype ont mis au jour « Atomic Arch », une campagne sur la chaîne d'approvisionnement dans laquelle des attaquants ont adopté des centaines de paquets orphelins de l'Arch User Repository et réécrit leurs scripts de compilation pour installer un paquet npm malveillant déposant un voleur d'identifiants Linux doté de capacités optionnelles de rootkit eBPF.

Victim
Arch User Repository (AUR)
Chaîne d’approvisionnementContenu

Le ver Miasma frappe 73 dépôts GitHub de Microsoft lors d'une attaque de la chaîne d'approvisionnement (2026)

Un ver auto-réplicateur de la chaîne d'approvisionnement baptisé Miasma a compromis 73 dépôts répartis sur quatre organisations GitHub de Microsoft, plantant des fichiers de configuration qui dérobaient des identifiants cloud et développeur dès que les projets étaient ouverts dans des agents de codage IA comme Claude Code et Cursor.

Victim
Microsoft (GitHub repositories)
Chaîne d’approvisionnementRésolu

Attaque de la chaîne d'approvisionnement 3CX (RPDC)

Des acteurs liés à la Corée du Nord ont trojanisé le client softphone 3CXDesktopApp, diffusant le maliciel SmoothOperator via une mise à jour signée légitimement à une base de plus de 600 000 organisations clientes — la première compromission en cascade documentée de la chaîne d'approvisionnement logicielle, elle-même rendue possible par une compromission antérieure du logiciel de trading X_TRADER.

Victim
3CX (clients de 3CXDesktopApp)