Steam : un bug supprime tous les fichiers des utilisateurs sur les distributions Gnu/Linux


Les utilisateurs de Steam, le célèbre outil de Valve Software qui permet aux gamers de télécharger, jouer et gérer la liste de leurs jeux vidéo sur PC, ont reporté il y a quelques jours de cela, un bug assez inquiétant sur la version Linux de l’outil. En effet, il semblerait qu'un défaut au niveau du code causerait la suppression de tous les fichiers liés au compte de l'utilisateur.

Selon le rapport d'erreur, le fait de déplacer Steam vers un autre emplacement dans le système de fichiers, puis de tenter de lancer le client de nouveau finit par exécuter la commande suivante : « rm -rf /* ». Cette commande, connue par tous les utilisateurs du Shell, a pour effet d'effacer de manière récursive tous les fichiers à partir du répertoire racine, ce qui implique tous les fichiers de l'utilisateur, mais aussi les lecteurs de sauvegarde montés et/ou partagés en réseau, à l'exception des fichiers systèmes appartenant au super-utilisateur « root » qui sont conservés.

« Il s'est réinstallé et tout avait l'air super. Jusqu'à ce que j'ai regardé et vu qu'il avait apparemment tout supprimé, y compris mes 3 To de fichiers sur mon disque dur externe », s'exclama un utilisateur sur GitHub.

Après vérification, la cause du bug a été détectée. Il s'agit d'une simple négligence qu'on peut voir dans le code suivant :

# Scary!

rm -rf "$STEAMROOT/"*

Comme on peut le voir, le contenu de la variable $STEAMROOT n'est pas vérifié. Si celle-ci était vide, le code causerait effectivement l'appel à la suppression des fichiers à partir du répertoire racine « / ». A remarquer que le commentaire #Scary (ie: effrayant) laisse penser que le programmeur savait qu'il y avait un risque qu'une telle chose puisse se produire. On attend toujours la réaction de Valve Software.

En attenant, il est conseillé aux utilisateurs d'éviter de déplacer le répertoire Steam et de s'assurer d'avoir une copie de ses fichiers au cas où …

Source : GitHub

Enregistrer un commentaire