[Generic/GNU findutils] Pufferüberlaufschwachstelle in 'locate'
(2007-06-01 17:19:10.387251+02) Druckversion
Quelle: http://archive.cert.uni-stuttgart.de/bugtraq/2007/05/msg00424.html
Eine Pufferüberlaufschwachstelle im Programm locate der
GNU findutils kann von einem Angreifer dazu ausgenutzt werden,
beliebigen Programmcode mit den Privilegien des locate-Prozesses auf dem
beherbergenden Rechnersystem auszuführen.
Betroffene Systeme
- GNU findutils 4.2.30 und früher
Nicht betroffene Systeme
- GNU findutils 4.2.31
- GNU findutils 4.2.30 und früher mit entsprechenden Patches
Einfallstor
Manipulation eines Dateinamens, der durch updatedb indiziert
und mittels locate abgefragt werden kann
Angriffsvoraussetzung
- Möglichkeit der Manipulation von Dateinamen
- durch lokale Benutzer (local)
- durch entfernte Benutzer, wenn die Konfiguration des beherbergenden Rechnersystems dies zulässt, z.B. auf einem FTP-Server, der das Hochladen von Dateien erlaubt (remote)
- Lokaler Benutzer, der das Programm
locateausführt locate-Installation mit altem Datenbankformat ('old-format')
Auswirkung
Ausführung beliebigen Programmcodes mit den Privilegien des
locate aufrufenden Benutzers
(user compromise)
Typ der Verwundbarkeit
Pufferüberlaufschwachstelle
(buffer overflow bug)
Gefahrenpotential
hoch
(Hinweise zur
Einstufung
des Gefahrenpotentials.)
Kontext
Die GNU Find Utilies
sind die Standardwerkzeuge unter Unix-Betriebssystemen und Linux um im
Dateisystem zu suchen. Es besteht aus fogenden Programmen:
find- dient zum interaktiven Durchsuchen von Verzeichnissenupdatedb- durchwandert das Dateisystem und aktualisiert eine oder mehrere Indexdatenbanken oder legt diese an. Die Datenbanken können im ursprünglichen ("old") oder im derzeit aktuellen LOCATEDB02-Format angelegt werden.locate- durchsucht die Indexdatenbank und gibt Treffer inklusive des Pfades zum Fundort aus.xargs- erlaubt das dynamische Übergeben von Argumenten an Kommandos, die zuvor vonstdingelesen wurden.xargswird sehr häufig benutzt, Ergebnisse desfind-Kommandos dynamisch weiteren Kommandos als Argument zu übergeben.
findutils sind standardmäßig bei in GNU/Linux und
GNU/Hurd sowie z.T. auch anderen Unix-Betriebssystemen installiert und
so konfiguriert, dass eine Indexdatenbank für die Abfrage mit
locate bereitsteht und regelmäßig aktualisiert wird.
Beschreibung
Eine Heap-basierte Pufferüberlaufschwachstelle im Programm locate der
GNU findutils kann von einem Angreifer dazu ausgenutzt werden,
beliebigen Programmcode mit den Privilegien des
locate-Prozesses auf dem
beherbergenden Rechnersystem auszuführen.
Dies sind im Allgemeinen die Privilegien des aufrufenden Benutzers.
Die Schwachstelle tritt auf, wenn locate bei einer Anfrage eine Index-Datenbank im alten LOCATE-Format liest. Dabei werden alleDateinamen in einen Puffer mit einer festen Länge von 1026 Byte gelesen. Längere Dateinamen überschreiben die Puffergrenze und erlauben einem Angreifer, Daten in angrenzende Speicherbereiche zu schreiben.
Prinzipiell sind alle Benutzer, die Dateinamen manipulieren können, in der Lage, die Schwachstelle auszunutzen. Dies sind zunächst alle lokalen Benutzer. Jedoch gibt es Szenarien, bei denen externe, und in besonderen Fällen sogar unauthentifizierte, Benutzer solches vermögen. Dies kann z.B. bei FTP-Servern der Fall sein, die es erlauben Dateien hochzuladen.
Um die Schwachstelle erfolgreich auszunutzen, muss der Angreifer
zunächst einen entsprechenden Dateinamen anlegen, und ihn im alten
LOCATE-Format indizieren
lassen. Letzteres geschieht im allgemeinen automatisch durch einen
cron-Prozess mittles des Programms updatedb, kann aber auch
durch dessen manuellen Aufruf bewirkt werden.
Sobald dann ein lokaler Benutzer (vorzugsweise ein Benutzer mit
höherern Privilegien als der Angreifer, sonst nützt der ganze Aufwand
nichts) das Programm locate
aufruft, wird ein Pufferüberlauf provoziert in dessen Folge
durch den Angreifer festgelegte Programmcode mit den Privilegen des
aufrufenden Benutzers ausgeführt werden kann.
Durch diese Schwachstelle kann sich ein lokaler Angreifer höhere Privilegien verschaffen und ein entfernter Angreifer z.B. in o.g. FTP-Szenario interaktiven Zugang zu einem verwundbaren System erlangen.
Workaround
- Umstellung der
locate-Installation auf das LOCATE02-Datenbankformat - Deinstallation von
locateauf Systemen, die eine externe Manipulation von Dateinamen zulassen
Gegenmaßnahmen
- Installation eines Source-Code-Patches oder
- Installation von GNU findutils 4.2.31
- Installation der entsprechenden GNU findutils-Pakete (Version ab 4.2.31 oder gepatcht) der verschiedenen Distributoren
Vulnerability ID
Weitere Information zu diesem Thema
Revisionen dieser Meldung
- V 1.0 (2007-06-01)
- V 1.1 (2007-06-02):
- Kontext-Abschnitt hinzugefügt
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 © 2013 RUS-CERT, Universität Stuttgart, http://cert.uni-stuttgart.de/
| Vorherige Meldung | Weitere Meldungen... | Nächste Meldung |
Bitte lesen Sie auch die Grundsätze, nach denen das RUS-CERT Tickermeldungen veröffentlicht. Der regelmäßige Bezug von Tickermeldungen über E-Mail und RSS-Feed ist ebenfalls möglich.