Stabsstelle Informationssicherheit der
Universität Stuttgart (RUS-CERT)
https://cert.uni-stuttgart.de
logo
Meldung Nr: RUS-CERT-891

[GNU/Linux] Schwachstelle in chfn und verwandten Programmen
(2002-08-07 15:52:15.869077+00)

Quelle: http://cert.uni-stuttgart.de/archive/vulnwatch/2002/07/msg00045.html

Durch eine Schwachstelle in Programmen wie chfn können lokale Benutzer root-Rechte erlangen.

Betroffene Systeme

Nicht betroffene Systeme

Einfallstor
lokaler Account

Auswirkung
Das Erlangen von root-Rechten ist möglich.
(local root compromise)

Typ der Verwundbarkeit
race condition

Gefahrenpotential
hoch (insbesondere wenn das Lockfile /etc/ptmp automatisch entfernt wird).
(Hinweise zur Einstufung des Gefahrenpotentials.)

Kontext
Mit dem Programm chfn ("change full name") kann ein Benutzer den in der Datei /etc/passwd gespeicherten vollen Namen (im sogenannten GECOS-Feld) ändern. Weitere Programme wie chsh (zum Ändern der Login-Shell) existieren ebenfalls.

Beschreibung
Die verwundbare chfn-Implementierung verwendet ein eher ungewöhnliches Verfahren, um das gleichzeitige Schreiben auf /etc/passwd zu verhindern. Durch einen Programmierfehler kann ein Angreifer gleichzeitig mehrere Instanzen von chfn schreibend auf dieselbe temporäre Kopie von /etc/passwd zugreifen lassen. Durch geschicktes Timing ist es möglich, die beiden Schreibvorgänge so ineinander zu verschachteln, das z.B. neue Accounts mit der User-ID 0 eingetragen werden (also mit root-Privilegien).

Feststellen der Verwundbarkeit
Die verwundbare chfn-Implementierung aus dem util-linux-Paket kann zumindest in neueren Versionen die Versionsnummer ausgeben:

$ chfn --version
util-linux-2.11f
$ 
(Die Option wird mindestens seit Oktober 1995 und util-linux 2.5 unterstützt.) Im Beispiel wird die Version 2.11f verwendet; Versionen bis 2.11t einschließlich sind von der Schwachstelle betroffen. Bitte beachten Sie, daß Hersteller-Patches möglicherweise die Schwachstelle beseitigen, aber nicht die Versionsnummer ändern.

Andere, nicht verwundbare Versionen unterstützten die Option --version nicht:

$ chfn --version
chfn: invalid option -- -
Usage: chfn [ -f full_name ] [ -r room_no ] [ -w work_ph ] [ -h home_ph ]
$ 

Workaround

Gegenmaßnahmen

Vulnerability ID

Weitere Information zu diesem Thema

(fw)

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=891