You are here: Home » Aktuelle Meldungen » Meldung
Sorry, this page is not translated yet.
Meldung Nr: RUS-CERT-1378

[Generic/GNU findutils] Pufferüberlaufschwachstelle in 'locate'
(2007-06-01 15:19:10.387251+00) 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

  1. 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)
  2. Lokaler Benutzer, der das Programm locate ausführt
  3. 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 Verzeichnissen
  • updatedb - 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 von stdin gelesen wurden. xargs wird sehr häufig benutzt, Ergebnisse des find-Kommandos dynamisch weiteren Kommandos als Argument zu übergeben.
Die 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 locate auf Systemen, die eine externe Manipulation von Dateinamen zulassen

Gegenmaßnahmen

Vulnerability ID

Weitere Information zu diesem Thema

Revisionen dieser Meldung

  • V 1.0 (2007-06-01)
  • V 1.1 (2007-06-02):

(og)

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 © 2017 RUS-CERT, Universität Stuttgart, https://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.