[Generic/sudo] Schwachstelle in sudo ermöglicht Privilegienerweiterung
(2005-12-21 14:50:27.35371+00)
Quelle:
http://www.sudo.ws/sudo/alerts/perl_env.html
Eine Schwachstelle in der Verarbeitung von Umgebungsvariablen für die Ausführung von Perl
-Skripten im Privilegien-Managementwerkzeug sudo
der Versionen vor 1.6.8p12 kann von lokalen Benutzern unter bestimmten Voraussetzungen dazu ausgenuzt werden, ihre Privilegien auf dem beherbergenden System zu erweitern.
Betroffene Systeme
sudo
der Versionen bis 1.6.8p11
Nicht betroffene Systeme
sudo 1.6.8p12
Einfallstor
Lokaler Benutzer mit der Erlaubnis, spezielle Perl
-Skripte mit erweiterten Privilegien auszuführen
(local)
Auswirkung
Ausführung beliebigen Programmcodes mit den durch sudo
gewährten Privilegien
(user compromise)
Typ der Verwundbarkeit
Designfehler
(design flaw)
Gefahrenpotential
mittel bis hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)
Beschreibung
Sofern ein Benutzer mittels sudo
bestimmte Perl
-Skripte mit erweiterten Privilegien ausführen darf, kann der durch das entsprechende Setzen der Umgebungsvariablen PERL5LIB
und PERLLIB
dem auszuführenden Skript eigene Libraries unterschieben. Damit ist es möglich, beliebigen Programmcode mit den durch sudo
zugestandenen Privilegien auszuführen. Sofern dies root
-Privilegien sind, ist so die Kompromittierung des beherbergenden Rechnersystems möglich. Die Umgebungsvariable PERL5OPT
kann zusätzlich dazu genutzt werden, dem Skript Kommandozeilenoptionen zu übergeben.
In vielen Umgebungen wird sudo
verwendet, um unprivilegierten Benutzern die Ausführung bestimmter Programme, Kommandos oder Skripten mit root
-Privilegien zu gestatten. Diese Fälle wiegen im Lichte dieser Schwachstelle schwer, da sie die Kompromittierung des beherbergenden Systems durch unprivilegierte Benutzer ermöglichen.
Mildernde Faktoren
Sofern mittels sudo
nur die Ausführung von Perl
-Skripten im tainted-Mode erlaubt ist, kann diese Schwachstelle nicht ausgenuzt werden.
Workaround
- Einfügen der folgenden Zeile in die
sudoers
-DateiDefaults env_delete+="PERLLIB PERL5LIB PERL5OPT"
was dazu führt, daß die VariablenPERL5LIB
,PERLLIB
undPERL5OPT
bei der Ausführung leer sind. - Alternativ kann die Zeile
Defaults env_reset
in diesudoers
-Datei eingefügt werden. Sie sorgt dafuer, daß für die Ausführung nur die VariablenHOME
,LOGNAME
,PATH
,SHELL
,TERM
undUSER
beachtet werden.
sudoers
sollte ausschließlich mit dem Kommando visudo
ediert werden.
Gegenmaßnahmen
- Installation von
sudo 1.6.8p12
Vulnerability ID
Weitere Information zu diesem Thema
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=1287