[Generic/html2ps] Ausführung beliebiger Kommandos über HTML-Dateien
(2002-11-11 07:37:29.156831+00)
Quelle:
http://cert.uni-stuttgart.de/archive/bugtraq/2002/10/msg00431.html
An mehreren Stellen führt html2ps
Shell-Kommandos aus, die in Dateinamen eingebettet sind.
Betroffene Systeme
- Versionen von
html2ps
bis einschließlich 1.0beta3.
Nicht betroffene Systeme
- Systeme, die mit entsprechenden Vendor-Patches zur Behebung der Schwachstelle versehen sind, die aber i.d.R. nicht die Versionsnummer ändern.
Einfallstor
HTML-Dokumente und CSS-Stylesheets, die speziell gestaltete Dateinamen enthalten.
Auswirkung
Falls es einem Angreifer gelingt, ein System oder einen Benutzer zur Konvertierung eines entsprechend präparierten Dokumentes mittels html2ps
zu veranlassen, kann der Angreifer beliebige Shell-Befehle mit der User-ID das html2ps
-Prozesses ausführen.
Typ der Verwundbarkeit
shell code injection
Gefahrenpotential
hoch bis sehr hoch (letzteres insbesondere in Verbindung mit Druck-Servern)
(Hinweise zur Einstufung des Gefahrenpotentials.)
Beschreibung
An mehreren Stellen ruft das Perl-Skript html2ps
den open
-Befehl von Perl wie folgt auf:
open HANDLE, $filename;
Der open
-Befehl interpretiert jedoch das zweite Argument als Shell-Kommando, falls es mit einem "|
" (Pipe-Symbol) startet. (Es ist dann möglich, durch ein print
o.ä. Daten an den erzeugten Unterprozeß zu schicken.) Dies ist natürlich hochgradig problematisch, falls der Wert von $filename
aus einer nicht vertrauenswürdigen Quelle stammt.
Korrigieren läst sich der Fehler durch:
open HANDLE, "<$filename";
Das "<
"-Zeichen weist Perl an, den Rest der Zeichenkette immer als Dateinamen zu interpretieren, der zum Lesen zu öffnen ist.
Diese Schwachstelle in html2ps
läßt sich vor allem für Angriffe auf Druck-Server verwenden, die automatisch HTML-Dokumente mit html2ps
in PostScript umsetzen.
Das LPRng-Paket in SuSE Linux enthält eine weitere Schwachtstelle (siehe SuSE-Advisory); die Kombination ermöglicht es einem Angreifer, der Druckjobs einreichen kann, root
-Rechte auf einem Druck-Server zu erreichen.
Gegenmaßnahmen
- Einspielen des Patches von SuSE oder eines äquivalenten Hersteller-Updates. Der Patch kann direkt auf das installierte Skript (normalerweise zu finden in
/usr/bin/html2ps
) angewandt werden.
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=1014