[Generic/Sun RPC] Pufferüberlaufschwachstelle in den RPC-Routinen
(2002-08-01 12:27:49.597881+00)
Quelle:
http://cert.uni-stuttgart.de/archive/bugtraq/2002/07/msg00430.html
Durch einen Fehler in der Funktion xdr_array
in den RPC-Routinen kann es zu einem Pufferüberlauf kommen, der über das Netzwerk zur Erlangung von root
-Rechten benutzt werden kann.
Betroffene Systeme
- alle Versionen von SunOS und Sun Solaris bis einschließlich Version 9 (sofern sie RPC unterstützen, was bei allen nicht-historischen Versionen der Fall ist)
- vermutlich die meisten proprietären UNIX-Hersteller
- FreeBSD, NetBSD, OpenBSD
- GNU libc
- dietlibc
- Vermutlich sind weitere RPC-Dienste anderer Hersteller betroffen.
Nicht betroffene Systeme
- Nach momentanen Kenntnisstand ist die XDR-Implementierung im Linux-Kernel für NFS nicht betroffen. (Dies gilt nicht für die Userspace- Programme, die zum Betrieb von NFS erforderlich sind!)
Einfallstor
TCP-Verbindungen und UDP-Pakete, über die RPC-Requests übertragen werden.
Auswirkung
Ausführung beliebigen Programmcodes, wodurch das beherbergende System kompromittiert werden kann.
(remote root compromise)
Typ der Verwundbarkeit
Ganzzahlüberlauf und dadurch Pufferüberlauf
(buffer overflow 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 derselben Maschine verwendet. Bei Solaris-Betriebssystemen sind diese Dienste normalerweise alle aktiviert. Um portabel zwischen verschiedenen Plattformen Nachrichten über RPC austauschen zu können, werden diese mit Hilfe von XDR (External Data Representation) einheitlich verpackt.
Beschreibung
Die Funktion xdr_array
wird zum Übersetzen zwischen der XDR- und Host-Darstellung von Arrays verwendet. Wenn dieser Funktion eine große Anzahl von Elementen übergeben wird, kommt es bei der Berechnung der zu bereitstellenden Puffergröße zu einem Ganzzahlüberlauf, wodurch der tatsächlich allokierte Puffer zu klein ausfällt. Dadurch kann ein Pufferüberlauf erzeugt werden. Diese Schwachstelle erlaubt es vermutlich, beliebigen Code mit root
-Rechten auszuführen. Die Funktion xdr_array
ist eine vielgenutzte Funktion, die nicht einen Spezialfall abhandelt, sonderen sondern von vielen anderen XDR-Funktionen als Baustein verwendet wird. Es ist daher davon auszugehen, dass diese Funktion in allen Serverdiensten eingesetzt wird.
Auch wenn die Linux-Kernel-Implementierung von XDR nicht betroffen zu sein scheint, gilt dies nicht für einige Hilfsprogramme wie einige Versionen von mount
.
Workaround
- Deaktivieren der RPC-Dienste (inklusive NFS). Das beeinträchtigt unter Umständen die Funktionalität des Systems erheblich.
Gegenmaßnahmen
- Einspielen eines Patches, entweder für die GNU libc oder für FreeBSD. (Die Patches sind bis auf die Formatierung äquivalent und bei manueller Anwendung auch für andere Systeme geeignet.)
- Einspielen eines Hersteller-Updates.
Hinweis: Der derzeit von FreeBSD verbreite Patch scheint fehlerhaft zu sein ("&&
" statt "||
").
Achtung: Nach dem Einspielen einer korrigierten libc
-Bibliothek sollte das System gebootet werden, um sicherzustellen, daß kein Prozeß mehr die alte Version verwendet. Ebenso müssen statisch gelinkte Programme gegen die neue Version gelinkt werden.
Vulnerability ID
Weitere Information zu diesem Thema
Weitere Artikel zu diesem Thema:
- [Generic/Sun RPC] Schwachstelle in den Sun RPC XDR library routines (2003-03-21)
Die Funktionxdrmem_getbytes()
, die in der XDR libray von Sun Microsystems enthalten ist, besitzt eine Schwachstelle, die dazu ausgenutzt werden kann, beliebigen Programmcode auf dem beherbergenden Rechnersystem mitroot
-Rechten auszuführen. Diese Funktion wird in einer Reihe von RPC-Applikationen verschiedener Hersteller benutzt.
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=908