Cybersécurité

Le piratage de paquets Rust installe un logiciel voleur d’informations sur les appareils des développeurs

Des comptes de maintenance de paquets Rust ont été piratés, entraînant la publication de versions malveillantes d’arrayref et de deux autres paquets, ainsi que l’exécution d’un logiciel malveillant pendant le processus de compilation. Le logiciel ciblait les données système et les identifiants des navigateurs. Il est conseillé aux développeurs ayant utilisé les versions concernées pendant la fenêtre d’exposition de reconstruire leurs environnements et de renouveler leurs secrets.

2026-08-20
4 min de lecture
175 vues
certi.news Editorial Team
Le piratage de paquets Rust installe un logiciel voleur d’informations sur les appareils des développeurs

Des attaquants ont exploité un compte de maintenance associé au célèbre paquet Rust arrayref afin de publier une version malveillante qui exécute un logiciel malveillant sur les appareils des développeurs pendant la compilation des projets. Durant une fenêtre temporelle de moins de 23 minutes, l’opération a également touché les paquets append-only-vec et internment, dans le cadre d’une attaque visant la chaîne d’approvisionnement logicielle.

StepSecurity a indiqué que les versions concernées sont arrayref 0.3.10, append-only-vec 0.1.9 et internment 0.8.7, les trois paquets étant gérés par le même compte. arrayref est largement utilisé : il a enregistré plus de 53 millions de téléchargements au cours des 90 derniers jours et plus de 245 millions de téléchargements au total. Il est intégré à des projets et outils liés à la cryptographie, aux graphismes et aux interfaces graphiques Rust, ainsi qu’à des composants utilisés dans les écosystèmes Ethereum et Solana.

Comment l’attaque a-t-elle été menée ?

Les attaquants ont ajouté une dépendance vers un paquet nommé proc-macro1, qui usurpe le nom du paquet connu proc-macro2. La majeure partie du code source original des paquets est restée inchangée, ce qui rend la manipulation plus difficile à repérer pour ceux qui se contentent d’examiner les différences de code.

proc-macro1 contenait un fichier build.rs exécuté automatiquement pendant la compilation. Ce fichier reconstitue les composants de l’infrastructure malveillante à partir de fragments encodés en Base64, puis sélectionne une charge utile adaptée au système d’exploitation, notamment Linux, Windows et macOS sur les architectures x86-64 et ARM64. Sous Unix, la charge utile est écrite dans /tmp/rust-setup et exécutée comme un processus distinct, tandis que sous Windows, l’attaque crée un fichier nommé rust-setup.ps1 dans le dossier TEMP et utilise wscript.exe ainsi qu’un lanceur au format VBS pour maintenir le processus en fonctionnement.

Que peut voler le logiciel malveillant ?

Selon l’analyse de Wiz, la deuxième étape collecte des informations sur l’hôte et des identifiants. Le logiciel extrait les données de connexion des bases de données SQLite des navigateurs Google Chrome, Brave et Edge. Il crée également des mécanismes de persistance via Registry Run sous Windows, LaunchAgent sous macOS et systemd sous Linux. La charge utile reçoit une adresse en argument, que l’on pense être l’adresse d’un serveur de commande et de contrôle.

Chronologie et implications pour les développeurs

La campagne a commencé à 01:17 UTC le 20 août 2026, avec la création d’un compte GitHub usurpant l’identité du développeur Rust reconnu David Tolnay, puis d’un compte similaire sur crates.io. Une version saine de proc-macro1 a été publiée à 01:55, suivie de la version malveillante 1.0.107 à 07:11. Quatre minutes plus tard, arrayref 0.3.10 a été publié via le compte légitime droundy, associé à David Roundy, tandis que les versions 0.3.5 à 0.3.9 étaient supprimées, ce qui pouvait pousser les outils d’installation à choisir la version malveillante.

L’incident a été signalé à 07:54, puis crates.io a supprimé le paquet proc-macro1 à 08:03 et retiré arrayref 0.3.10 de l’index à 08:41. Des versions malveillantes d’autres paquets ont également été supprimées : aovine, arone, aronenao et tinymember.

Mesures de réponse

Les personnes ayant installé les versions concernées durant la fenêtre d’exposition, qui a duré près d’une heure et demie, doivent considérer l’environnement comme compromis. L’examen doit notamment rechercher les versions suspectes dans les fichiers Cargo.lock, vérifier les fichiers déposés et contrôler les connexions vers l’adresse 23.254.165[.]112 via les ports 9089 et 443. En cas de compromission confirmée, les analyses recommandent de renouveler tous les identifiants, jetons CI, clés de signature et autres secrets, puis de reconstruire l’environnement à partir de sauvegardes fiables. Quant aux projets non concernés, ils doivent fixer une version connue comme sûre jusqu’à ce que la situation des comptes de maintenance soit clarifiée.

Source de l’actualité
c
Auteur

certi.news Editorial Team

À retenir

Des comptes de maintenance compromis ont été utilisés pour publier des versions malveillantes de paquets Rust, notamment arrayref, append-only-vec et internment, ce qui a entraîné l’exécution d’un logiciel voleur d’informations lors de la compilation des projets. Toute personne ayant utilisé les versions concernées pendant la fenêtre d’exposition doit examiner son environnement, renouveler ses secrets et ses identifiants, puis le reconstruire à partir de sources fiables si une compromission est confirmée.

  • Les versions concernées mentionnées sont arrayref 0.3.10, append-only-vec 0.1.9 et internment 0.8.7.
  • Une fausse dépendance nommée proc-macro1, usurpant le nom de proc-macro2, a été ajoutée. Elle contenait un fichier build.rs exécuté automatiquement lors de la compilation.
  • La charge utile ciblait Linux, Windows et macOS sur les architectures x86-64 et ARM64. Elle recueillait des informations système et les identifiants des navigateurs Chrome, Brave et Edge.
  • Le logiciel malveillant mettait en place des mécanismes de persistance via Registry Run sous Windows, LaunchAgent sous macOS et systemd sous Linux.
  • L’analyse recommande d’examiner les fichiers Cargo.lock, de rechercher les fichiers et connexions suspects, de renouveler les jetons CI, les clés de signature et les secrets, puis de reconstruire les environnements concernés.
  • crates.io a supprimé les paquets et versions malveillants mentionnés après le signalement de l’incident.

FAQ

Quels sont les paquets concernés ?

L’article mentionne arrayref 0.3.10, append-only-vec 0.1.9 et internment 0.8.7. Il indique également que des versions malveillantes d’autres paquets — aovine, arone, aronenao et tinymember — ont été supprimées.

Comment le logiciel malveillant fonctionnait-il ?

Les composants de la charge utile étaient reconstitués à partir de fragments encodés en Base64 dans build.rs. Une charge utile adaptée au système d’exploitation était ensuite sélectionnée et exécutée pendant la compilation.

Quelles données le logiciel malveillant ciblait-il ?

Il recueillait des informations sur l’hôte ainsi que des identifiants de navigateur, notamment les bases de données SQLite des navigateurs Google Chrome, Brave et Edge.

Que doivent faire les développeurs ayant utilisé les versions concernées ?

Ils doivent considérer l’environnement comme compromis, examiner les fichiers Cargo.lock ainsi que les fichiers et connexions suspects, renouveler les identifiants et les secrets, puis reconstruire l’environnement à partir de sauvegardes fiables.

Dans la même catégorie

À lire également

Voir toutes les actualités