Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Generic/GNU findutils] Pufferueberlaufschwachstelle in 'locate'

0 views
Skip to first unread message

RUS-CERT (Oliver Goebel)

unread,
Jun 4, 2007, 9:06:01 AM6/4/07
to Tic...@lists.cert.uni-stuttgart.de
[Generic/GNU findutils] Pufferüberlaufschwachstelle in 'locate'
(2007-06-01 17:19:10.387251+02)
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 [1]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 [2]Einstufung des Gefahrenpotentials.)

Kontext
Die [3]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
* Installation eines [4]Source-Code-Patches oder
* Installation von [5]GNU findutils 4.2.31
* Installation der entsprechenden GNU findutils-Pakete (Version ab
4.2.31 oder gepatcht) der verschiedenen Distributoren

Vulnerability ID
* [6]CVE-2007-2452

Weitere Information zu diesem Thema
* [7]GNU findutils Homepage

Revisionen dieser Meldung
* V 1.0 (2007-06-01)
* V 1.1 (2007-06-02):
+ [8]Kontext-Abschnitt hinzugefügt

Aktuelle Version dieses Artikels
[9]http://CERT.Uni-Stuttgart.DE/ticker/article.php?mid=1378

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 © 2007 RUS-CERT, Universität Stuttgart,
[10]http://CERT.Uni-Stuttgart.DE/

References

1. http://CERT.Uni-Stuttgart.DE/ticker/article-bare.php?mid=1378#countermeasures
2. http://CERT.Uni-Stuttgart.DE/ticker/charta.php#Gefaehrdungsstufen
3. http://www.gnu.org/software/findutils
4. http://archive.cert.uni-stuttgart.de/bugtraq/2007/05/msg00424.html
5. ftp://ftp.gnu.org/gnu/findutils/findutils-4.2.31.tar.gz
6. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2452
7. http://www.gnu.org/software/findutils
8. http://CERT.Uni-Stuttgart.DE/ticker/article-bare.php?mid=1378#context
9. http://CERT.Uni-Stuttgart.DE/ticker/article.php?mid=1378
10. http://CERT.Uni-Stuttgart.DE/

----------------------------------------------------------------------

Weitere Nachrichten: http://CERT.Uni-Stuttgart.DE/ticker/
Kommentare & Kritik bitte an Aut...@Lists.CERT.Uni-Stuttgart.DE

0 new messages