[Sun/Solaris] Pufferüberlauffehler in cachefsd
(2002-05-03 16:22:01+00)
Quelle:
http://cert.uni-stuttgart.de/archive/bugtraq/2002/04/msg00416.html
Eine Schwachstelle im cachefsd
erlaubt Angreifern über eine Netzwerkverbindung beliebigen Programmcode mit root
-Rechten auf dem beherbergenden Rechnersystem auszuführen.
Betroffene Systeme
- Solaris 8
- Solaris 8 für x86-Plattformen
- Solaris 7
- Solaris 7 für x86-Plattformen
- Solaris 2.6
- Solaris 2.6 für x86-Plattformen
- Solaris 2.5.1
- Solaris 2.6 für x86-Plattformen
Einfallstor
Speziell formatierter RPC-Request
Auswirkung
Kompromittierung des beherbergenden Rechnersystems über eine Netzwerkverbindung
(remote root compromise)
Typ der Verwundbarkeit
(heap) buffer overflow bug
Gefahrenpotential
sehr hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)
Kontext
CacheFS dient in einer NFS-Umgebung (NFS: Network File System) dazu, die Anbindung von NFS-Clients robust zu machen. Im Falle der temporären Nichtverfügbarkeit des NFS-Servers bedient CacheFS per NFS montierte Filesysteme aus seinem Cache und verhindert so eine Unterbrechung.
Teil dieses Systems ist der Daemon cachefsd
, der während der Unterbrechung der Verbindung den Status des NFS-Servers beobachtet und bei Wiedervefügbarkeit die Filesysteme in einen konsistenten Zustand bringt.
Beschreibung
In den Routinen zur Verarbeitung von RPC-Requests im cachefsd
existiert ein Pufferüberlauffehler. Durch das Senden speziell formulierter RPC-Requests an den Port, der von cachefsd
zum Empfang solcher Requests reserviert wurde, kann ein Angreifer über eine Netzwerkverbindung diesen Fehler dazu ausnutzen, beliebigen Programmcode unter der UID
des cachefsd
auszuführen. Üblicherweise wird cachefsd
mit der UID=root
gestartet, so daß eine erfolgreiche Ausnutzung dieser Schwachstelle zur Kompromittierung des beherbergenden Rechnersystems führt. cachefsd
wird standardmäßig installiert und durch inetd
bei Eintreffen eines entsprechenden RPC-Requests gestartet.
Gegenmaßnahmen
Bisher stehen keine Patches zur Behebung dieser Schwachstelle zur Verfügung.
Workaround
Deaktivierung von cachefsd
. Dies kann durch Auskommentieren der ensprechenden Zeile in /etc/inetd.conf
geschehen.
- Loggen Sie sich als
root
ein:$ su Password: #
- Editieren Sie die Datei
/etc/inetd.conf
# vi /etc/inetd.conf
- Suchen Sie die Zeile
100235/1 tli rpc/tcp wait root /usr/lib/fs/cachefs/cachefsd cachefsd
und Kommentieren Sie sie durch Voranstellung eines Doppelkreuzes (#
) aus (dasvi
-Kommando 'i
' schaltet in den Einfügemodus)# 100235/1 tli rpc/tcp wait root /usr/lib/fs/cachefs/cachefsd cachefsd
Das Drücken derESC
-Taste verläßt den Einfügemodus. - Speichern Sie die Datei mit dem
vi
-Kommando ':wq!
' ab. Dieses Kommando beendetvi
gleichzeitig. - Starten Sie
inetd
neu und beenden Sie ggf. einen noch laufendencachefsd
:- unter Solaris 2.5.1 und 2.6 mit den Kommandos
# kill -HUP PID_von_inetd # kill PID_von_cachefsd
Mittels des Kommandos:# ps -ef | grep inetd
bzw.# ps -ef | grep cachefsd
kann die PID des jeweiligen Prozesses ermittelt werden. - unter Solaris 7 und 8
# pkill -HUP inetd # pkill cachefsd
- unter Solaris 2.5.1 und 2.6 mit den Kommandos
- Loggen Sie sich wieder aus:
# exit $
Angriffsspuren
Angriffsversuche, die eine Ausnutzung dieser Schwachstelle zum Ziel haben, können SYSLOG
-Einträge der folgenden Formen erzeugen:
May 3 16:46:08 victim inetd[600]: /usr/lib/fs/cachefs/cachefsd: Segmentation Fault - core dumped May 3 16:46:22 victim last message repeated 8 times May 3 16:46:24 victim inetd[600]: /usr/lib/fs/cachefs/cachefsd: Bus Error- core dumped [...]sowie ähnliche Einträge, die dokumentieren, daß
cachefsd
fehlerhaft beendet wurde. Es sei darauf hingewiesen, daß die Abwesenheit solcher Einträge mitnichten darauf schließen läßt, daß kein Angriff stattgefunden hat.
Vulnerability ID
Weitere Information zu diesem Thema
- eSecurityOnline Security Advisory 4198 - Sun Solaris cachefsd mount file buffer overflow vulnerability
- eSecurityOnline Security Advisory 4197 - Sun Solaris cachefsd denial of service vulnerability
- CERT Advisory CA-2002-11 Heap Overflow in Cachefs Daemon (cachefsd)
- Sun(sm) Alert Notification 44309: Buffer Overflow in cachefsd in Solaris
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=806