Un bug ravageur dans le client Linux de Steam

Le bug est expliqué sur une page de bit-tech.net, repéré par notre confrère Clubic Une discussion est lancée à ce sujet sur Git Hub.

Il est des bugs plus ou moins gênants. Celui-là fait vraiment très mal. Il se situe dans le script steam.sh, script d'installation du client Steam sous Linux. Le script propose l'option --reset-steam que l'on peut utiliser pour réinitialiser le client.

Le problème est que cela peut aboutir à l'effacement de tous vos fichiers utilisateur au moins, voire à la destruction complète du système !

En effet le script contient cette ligne :

rm -rf "$STEAMROOT/"*

qui efface le répertoire dans lequel est installé le client. Le problème est que la variable STEAMROOT n'est pas testée. Si celle-ci est vide, la commande devient

rm -rf "/"*

Ce qui efface tous les fichiers à partir de la racine du système. Concrètement cela touche tous les fichiers sur lesquels vous avez les droits, ce qui correspond au minimum à tous les fichiers de votre répertoire utilisateur. Si vous avez les droits sur d'autres fichiers situés ailleurs, ceux-ci passent à la trappe également.

Si vous travaillez en root (ce qu'il ne faudra jamais faire sous Linux, n'est-ce pas ?), votre système entier est détruit :-)

rm -rf est une commande qui n'a pas du tout bonne presse chez les administrateurs Linux expérimentés, qu'ils évitent soigneusement d'utiliser en général.  Ceux-ci savent en outre que le joker * ne devrait JAMAIS être donné dans une commande rm -rf. Les administrateurs système travaillant en général sous root, ils savent qu'il vaut mieux faire attention, les conséquences de la moindre erreur étant beaucoup trop graves :-)

Bref, le script steam.sh n'est pas programmé de la manière la plus propre qui soit. Un correctif devrait être publié rapidement.

Soumis par fredericmazue le mer, 21/01/2015 - 15:01