Rust Supply Chain Attack Puts Build-Time Malware in Crates with 245 Million Downloads
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,
arrayrefcumule 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.rsnon 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,arrayrefversion 0.3.9 ou antérieure). - Audit : Surveiller les comportements réseau inhabituels et la présence de fichiers suspects (
/tmp/rust-setupsur 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.locket à rester vigilants face aux mises à jour soudaines de bibliothèques largement utilisées.
