[Generic/Linux] Schwachstelle in nfs-utils-Funktion xlog()
(2003-07-16 13:07:40.834569+00)
Quelle:
http://cert.uni-stuttgart.de/archive/vulnwatch/2003/07/msg00023.html
Ein off-by-one bug in der Funktion xlog()
des nfs-utils
Paketes ermöglicht einem Angreifer durch das Senden eines speziell formulierten RPC-Requests an den mount
-daemon eines NFS-Servers möglicherweise die Kompromittierung des beherbergenden Rechnersystems.
Betroffene Systeme
- GNU/Linux-Systeme, die NFS mit
nfs-utils
der Versionen vor 1.0.4 betreiben
Nicht betroffene Systeme
nfs-utils
ab Version 1.0.4- Systeme, die mit entsprechenden Vendor-Patches zur Behebung der Schwachstelle versehen sind, die aber i.d.R. nicht die Versionsnummer ändern.
Einfallstor
Speziell formulierter RPC-Request an mountd
Auswirkung
Kompromittierung des beherbergenden Rechnersystems
(remote root compromise)
Typ der Verwundbarkeit
off-by-one bug
Gefahrenpotential
sehr hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)
Kontext
RPC (Remote Procedure Call) wird vor allem zur Kommunikation von Prozessen auf verteilt arbeitenden Systemen benutzt, es wird jedoch auch zur Interprozeßkommunikation auf ein und demselben Rechner verwendet.
NFS (Network File System) ist ein RPC-basierter Dienst, der verteilte Dateisysteme über Netzverbindungen ermöglicht. Ein NFS-Server exportiert dabei Dateisysteme, die NFS-Clients wie lokal vorhandene Filesysteme in den eigenen Dateisystembaum montieren (mount) können. Serverseitig wacht der mountd
(mount daemon) darüber, daß nur autorisierte Clientsysteme tatsächlich exportierte Systeme montieren dürfen und stellt diese nach Empfang eines entsprechenden MOUNT
-Requests zur Verfügung.
Beschreibung
Die Funktion xlog()
, die vom nfs-utils
-Paket für das Logging von Requests durch den mountd
bereitgestellt wird enthält einen off-by-one-Fehler. Wird dieser Funktion ein String der Länge 1023 Bytes oder größer übergeben, kann die Puffergrenze überschrieben werden. Dies kann prinzipiell dazu ausgenutzt werden, beliebigen Programmcode mit den Privilegien des mountd
auszuführen. Üblicherweise läuft mountd
mit der UID=0 (root)
.
Es gibt Hinweise, daß die Ausnutzung dieser Schwachstelle nicht vollständig trivial ist.
Workaround
Generell ist anzumerken, daß NFS nicht in öffentlichen Netzen betrieben werden sollte, da die zugrundeliegenden Protokolle nur minimale Sicherheitsmerkmale bieten. Netze, in denen NFS betrieben wird, sollten daher stark - z. B. durch Firewalls - abgesichert sein, Zugriffe von außerhalb der Netze auf NFS-Dienste unterbunden sein. Innerhalb der Netze sollten die Zugriffe auf NFS-Dienste beschränkt werden auf Systeme, die diese Dienste nutzen dürfen. Dabei sollten nicht nur die Sicherheitsmerkmale benutzt werden, die NFS bietet, sondern weitere, wie beispielsweise Paketfiltersysteme.
Gegenmaßnahmen
Installation eines Patches:
Vulnerability ID
Exploit Code
Offenbar ist seit längerer Zeit Exploit Code verfügbar, der scheinbar aber nicht zur Kompromittierung eines Rechnersystems genutzt werden kann. Dem RUS-CERT sind bis dato keine erfolgreichen Kompromittierungen, die unter Ausnutzung dieser Schwachstelle erfolgten, bekannt.
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=1122