Rust Supply Chain Attack Puts Build-Time Malware in Crates with 245 Million Downloads

1 minute de lecture

Mis à jour :

Attaque de la chaîne d’approvisionnement Rust : Malware via crates.io

Une attaque par compromission de compte a permis d’injecter des malwares dans trois bibliothèques Rust populaires (arrayref, internment et append-only-vec). En utilisant une dépendance malveillante nommée proc-macro1 (typosquatting de proc-macro2), les attaquants ont intégré un script de compilation capable de télécharger et d’exécuter un payload distant dès le lancement de la commande cargo build.

Points clés :

  • Vecteur d’attaque : Utilisation d’un compte de mainteneur compromis pour publier des versions infectées. La ruse consistait à “yank” (retirer) les versions précédentes légitimes pour forcer les utilisateurs à mettre à jour vers la version corrompue.
  • Fonctionnement : Le malware désactive la vérification TLS lors du téléchargement du payload, installe une persistance (Windows, macOS, Linux) et exécute des commandes distantes. Il cible principalement le vol d’identifiants de navigateur.
  • Impact : Bien que les versions malveillantes aient été supprimées en moins de deux heures, arrayref cumule plus de 245 millions de téléchargements et est une dépendance indirecte de nombreux projets critiques.
  • Attribution potentielle : Des similitudes avec des campagnes liées à des acteurs nord-coréens (ex: Sapphire Sleet / MIDNIGHT NEPTUNE) ont été relevées, bien qu’aucune attribution formelle n’ait été confirmée.

Vulnérabilités :

  • CVE : Aucune identifiant CVE n’a été assigné.
  • Advisory RustSec : RUSTSEC-2026-0260.
  • Vulnérabilité exploitée : Exécution de code arbitraire durant la phase de build via des scripts build.rs non restreints.

Recommandations :

  • Nettoyage : Vérifier et supprimer les fichiers suspects dans le cache local Cargo (~/.cargo/registry/cache).
  • Versionnement : Fixer les versions des dépendances (pinning) aux versions connues comme sûres (par exemple, arrayref version 0.3.9 ou antérieure).
  • Audit : Surveiller les comportements réseau inhabituels et la présence de fichiers suspects (/tmp/rust-setup sur Unix, scripts PowerShell sur Windows).
  • Sécurité des processus : Les développeurs sont encouragés à examiner les changements de dépendances dans leurs fichiers Cargo.lock et à rester vigilants face aux mises à jour soudaines de bibliothèques largement utilisées.

Source