[Generic/wget] Schwachstelle in wget erlaubt beliebige Dateien zu löschen oder anzulegen
(2004-12-13 13:31:09.722132+00)
Quelle:
http://cert.uni-stuttgart.de/archive/bugtraq/2004/12/msg00106.html
Das Programm wget
, das für das nicht-interaktve herunterladen von Daten via HTTP, HTTPS und FTP z.B. in Skripten verwendet werden kann, besitzt eine Schwachstelle. Diese kann dazu führen, daß beliebige Dateien innerhalb des Dateibaumes an dessen Wurzel wget
aufgerufen wird, neu erzeugt oder Dateien überschrieben werden.
Betroffene Systeme
- GNU wget 1.9.x
- GNU wget 1.8.x
- GNU wget der Versionen vor 1.8.x vermutlich ebenfalls
Einfallstor
- URL über den
wget
Daten anfordert - Entsprechende HTML-Antwort auf eine Anfrage durch
wget
Auswirkung
Schreiben bzw. Überschreiben beliebiger Dateien innerhalb des Dateibaumes an dessen Wurzel wget
aufgerufen wird
Typ der Verwundbarkeit
design Flaw
Gefahrenpotential
mittel bis hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)
Kontext
GNU wget
ist ein Programm für das nicht-interaktive herunterladen von Daten via HTTP, HTTPS und FTP und über HTTP-Proxies. Die Eigenschaft der "Nicht-Interaktivität" ist wesentlich, da wget
dazu entwickelt wurde, aus Skripten und Programmen heraus einfach aufrufbar zu sein.
Beschreibung
Das Programm wget
besitzt eine Schwachstelle beim lokalen Schreiben heruntergeladener Dateien. Diese kann dazu führen, daß beliebige Dateien innerhalb des Dateibaumes an dessen Wurzel wget
aufgerufen wird, neu erzeugt oder überschrieben werden. Ein Angreifer, der Kontrolle über einen für den Download verwendeten URL hat, kann dies dazu ausnutzen, systemwichtige Dateien des beherbergenden Rechnersystems in seinem Sinne zu manipulieren. Dabei können auch Dateien überschrieben werden, die nicht angefordert wurden, da beim lokalen Schreiben der Datei der Name verwendet wird, den der angesprochene Server zurückliefert.
Wird z.B. wget
im Verzeichnis /home/einuser/
aufgerufen, um eine Datei bild.jpg
von einem Server herunterzuladen, so wird die Datei /home/einuser/.ssh/authorized_keys
überschrieben, wenn der Server, von dem heruntergeladen wird, als Antwort ./.ssh/authorized_keys
zurückliefert, es wird kein Abgleich der Namen der angeforderten und der zurückgelieferten Dateinamen vorgenommen. Nach derzeitigem Kenntnisstand wäre es in diesem Szenario nicht möglich, Dateien oberhalb des Verzeichnisses /home/einuser/
anzulegen oder zu überschreiben.
Dieses Verhalten von wget
kann vermieden werden, sofern beim Aufruf die Option -o
, die einen Ausgabepfad für das Log, sowie -O
, die einen Ausgabepfad und damit den lokalen Namen der herunterzuladenden Datei vorgibt, verwendet wird.
Sofern wget
nur interaktiv aus der Kommandozeile heraus aufgerufen wird, kann dieser Workaround das Problem wirksam unterdrücken, jedoch ist im Einzelfall zu prüfen, ob wget
in Skripten aufgerufen wird und ob dort dieser Workaround installiert werden kann.
Workaround
- Verwendung der Optionen
-o
und-O
beim Aufruf vonwget
- Prüfen aller Skripte, die
wget
aufrufen, ob die Schwachstelle ausgenutzt werden kann, ggf. entsprechende Änderung dieser Skripte.
Gegenmaßnahmen
- Es sind derzeit noch keine Patches verfügbar, die dieses Problem beheben.
Exploit-Status
- proof-of-concept-Code ist veröffentlicht.
Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.
Copyright © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/
https://cert.uni-stuttgart.de/ticker/article.php?mid=1231