Bugs Rust won't catch
En avril 2026, un audit externe de uutils a révélé 44 CVE principalement liés à des erreurs logiques et aux interactions avec le système plutôt qu'à des failles de mémoire. La majorité des vulnérabilités provenaient de TOCTOU sur des chemins entre deux appels système et de l'utilisation d'API std::fs qui résolvent les chemins à chaque appel plutôt que d'ancrer les opérations sur des descripteurs de fichiers. Les correctifs et bonnes pratiques recommandés comprennent l'utilisation d'OpenOptions::create_new ou d'opérations relatives à un descripteur parent, la définition des permissions à la création, la canonicalisation des chemins et la manipulation des flux en octets (OsStr/Vec<u8]) plutôt que des String. L'audit a aussi mis en évidence des risques liés aux unwrap/panic, à la suppression d'erreurs et aux divergences comportementales par rapport à GNU, et recommande de propager les erreurs, d'ajouter des lints et d'assurer la compatibilité bug-par-bug quand nécessaire. Malgré ces défauts fonctionnels, Rust a empêché les classes classiques de vulnérabilités mémoire, et l'auteur conclut que l'effort doit porter sur les frontières entre le code Rust et le monde extérieur via des idiomes défensifs, des tests et des audits ciblés.