Rust Re-Write of GNU CoreUtils Has New, Even Buggier Release

La version 0.9 des utilitaires GNU réécrits en Rust (uutils) est significativement moins fiable que la version 0.8, avec davantage d’échecs aux tests et des failles de sécurité connues, ce qui rend leur adoption par défaut dans Ubuntu particulièrement risquée.

Voir la source

SYNTHÈSE STRUCTURÉE

Dégradation mesurable de la qualité entre 0.8 et 0.9

La version 0.9 des uutils ne passe que 90,5 % des tests, contre 94,7 % pour la version 0.8. Cela représente une baisse de plus de 4 points de pourcentage. L’intervenant précise : « uutils 0.9 passes significantly fewer tests than 0.8 and it is failing many tests that it used to pass ». Cinq tests qui réussissaient auparavant échouent désormais, ce qui prouve une régression nette.

Couverture de test toujours très insuffisante

Bien que l’équipe ait ajouté quelques nouveaux cas de test, la couverture reste dérisoire par rapport à l’ensemble des fonctionnalités des GNU coreutils. L’intervenant estime que « they probably don’t even have 5% of the tests that they need ». Les tests existants ne couvrent qu’une fraction des cas limites (edge cases) accumulés depuis des décennies.

652 problèmes ouverts, dont des failles de sécurité critiques

Au moment de l’enregistrement, 652 problèmes (issues) sont ouverts, incluant des vulnérabilités de sécurité graves, des problèmes de performance et des incompatibilités majeures. L’intervenant souligne : « many of those are severe security performance and compatibility issues », avec des outils qui « don’t work at all » ou présentent des failles « known and documented and easy to exploit ».

Un audit de sécurité a révélé de nombreuses vulnérabilités

Canonical (la société mère d’Ubuntu) a commandé un audit de sécurité externe. Celui-ci a mis en lumière un grand nombre de vulnérabilités. L’équipe uutils en a corrigé une partie, mais pas la totalité. L’intervenant note : « they fixed a good chunk of them, not all of them », ce qui laisse des failles connues non résolues.

Un développeur principal admet la piètre qualité de l’implémentation

L’intervenant cite un développeur des uutils à propos de la commande timeout : « Our actual implementation is so subpar I don’t even have words. I’m just frustrated with uutils timeout to the point of absolute exhaustion. We don’t even cover half of the documented edge cases ». Ce constat est extrapolable à l’ensemble des outils.

Aucun bénéfice fonctionnel pour l’utilisateur final

Ces réécritures Rust sont conçues comme des remplacements « drop-in » des GNU coreutils, sans ajout de fonctionnalités nouvelles. L’intervenant insiste : « these tools are meant to be drop-in replacements with no significant new functionality ». Remplacer un outil qui fonctionne parfaitement par un équivalent moins fiable n’apporte aucun avantage à l’utilisateur.

La décision d’Ubuntu est jugée irrationnelle

L’intervenant critique sévèrement Canonical pour avoir choisi de livrer ces outils par défaut malgré leur état. Il déclare : « I’m going to criticize Ubuntu and Canonical for seeing these absolutely horrific scenarios and shipping it anyway ». Il qualifie cette décision de « 18 different kinds of dumb » et estime qu’aucun responsable technique expérimenté n’agirait ainsi.

Un espoir que Canonical finira par écouter les critiques

L’intervenant rappelle qu’historiquement, Canonical finit par tenir compte des retours, mais avec un retard d’environ deux ans. Il cite des précédents comme Mir ou des problèmes de design. Il pense que Mark Shuttleworth, le fondateur d’Ubuntu, « wants Ubuntu to be great » et finira par réagir, mais trop tard pour éviter les dégâts.

CONCEPTS CLÉS

  • uutils : Ensemble d’utilitaires en ligne de commande (comme ls, cp, rm) réécrits en Rust, visant à remplacer les GNU coreutils.
  • GNU coreutils : Collection de programmes fondamentaux pour les systèmes Unix/Linux, développée et testée depuis des décennies.
  • Drop-in replacement : Remplacement d’un logiciel par un autre sans modification de l’interface ou du comportement attendu.
  • Edge case : Cas limite ou situation rare que le logiciel doit gérer correctement, souvent source de bugs.
  • Audit de sécurité : Examen systématique du code source pour identifier des vulnérabilités.

CONCLUSION

La version 0.9 des uutils est objectivement moins fiable que la 0.8, avec une baisse du taux de réussite des tests, des régressions et des failles de sécurité non corrigées. Pourtant, Ubuntu persiste à vouloir les imposer par défaut, sans apporter de bénéfice tangible aux utilisateurs. Cette décision expose les administrateurs système à des risques d’instabilité, d’incompatibilité et de sécurité évitables. Le message principal est clair : ne pas remplacer un outil éprouvé par une alternative immature sans avantage fonctionnel, surtout quand la qualité régresse.

Du même canal

Tout voir