Steam: Bash-Script gefährdet Anwenderdaten unter Linux
Unter gewissen Umständen sorgt ein Fehler in einem Script in Valves Gaming-Software Steam unter Linux dafür, dass alle Daten, für die der Anwender Rechte besitzt, gelöscht werden. Aber auch unter Windows sollten Spieler weiterhin aufpassen, in welchem Ordner Steam liegt, bevor es deinstalliert wird.
Unter Linux tritt das Problem beispielsweise auf, wenn der Anwender sein Steam-Verzeichnis auf eine andere Festplatte verschieben möchte. Wie ein Ubuntu-Anwender auf GitHub berichtet, verlor er sämtliche Daten seiner Home-Partition und einer eingebundenen externen USB-Platte, nachdem er das Verzeichnis /home/user/.local/share/Steam auf eine andere Platte verschoben und dann per symbolischem Link wieder eingebunden hatte. In der anschließenden Diskussion auf der Coding-Plattform stellte sich heraus, dass er nicht der erste war, der durch diesen Fehler Daten verloren hat.
Der Grund für den Fehler ist die fehlende Überprüfung einer Variablen. Ist die Variable STEAMROOT in dem Bash-Script steam.sh leer, wird deren ursprüngliche Aufgabe ungewollt erweitert. Das Shellscript, das eigentlich nur die Daten in ../Steam löschen soll, erweitert dann rm -rf "$STEAMROOT/"* vermutlich zu rm -rf "/"*, das dann bestimmungsgemäß alle im Zugriff des Anwenderkontos befindlichen Daten löscht. Das Gefahrenpotential des Aufrufs scheint bei Valve bereits vorher jemandem aufgefallen sein, denn der Aufruf ist im Script mit # Scary! als Kommentar überschrieben,
Der Fehler ist leicht zu beheben, wenn man beispielsweise den Aufruf in der Art von ${STEAMROOT:?} in geschweifte Klammern setzt. Ist die Variable dann leer oder nicht gesetzt, bricht das Script ab. Wichtiger ist, herauszufinden, unter welchen Umständen die Variable leer ist und warum. Kommentatoren auf GitHub erinnert der Fehler an jenen in Bumblebee, wo eine überflüssige Leerstelle zum Entfernen des /usr-Verzeichnisses führte.
Auch unter Windows kann Steam bei der Deinstallation Daten löschen, wenn es irrtümlich in einem falschen Verzeichnis liegt.
Valve hat ein Update für den Steam-Client bereitgestellt, das unter anderem auch den Fehler in steam.sh behebt. Außerdem wurde Steam Broadcasting integriert sowie eine Reihe an Fehlern behoben. Das Update umfasst rund 180 Megabyte und sollte beim Start des Clients automatisch bezogen werden. Ist dies nicht der Fall, kann es auch über die Update-Überprüfung angeschoben werden.