[GNU/Linux] getcwd() kann falsche Werte liefern
(2002-04-08 17:58:49+00)
Quelle:
http://cert.uni-stuttgart.de/archive/vulnwatch/2002/03/msg00018.html
Die Funktion getcwd(), die zur Ermittlung des aktuellen Verzeichnisses eines Prozesses verwendet wird, läßt bei sehr langen Pfaden führende Komponenten des Pfades weg.
Betroffene Systeme
- Systeme mit Linux-Kernel bis einschließlich Version 2.2.20 bzw. Version 2.4.18.
Einfallstor
lokaler Account
Auswirkung
Prozesse arbeiten mit falscher Information über das akutelle Verzeichnis. Dies kann bei setuid/gid
-Programmen problematisch sein.
Typ der Verwundbarkeit
boundary condition error
Gefahrenpotential
niedrig
(Hinweise zur Einstufung des Gefahrenpotentials.)
Beschreibung
Mit dem Systemaufruf getcwd()
kann ein Prozeß den vollständigen Pfad des Verzeichnisses ermitteln, in dem er sich gegenwärtig befindet. Intern wird ein Puffer fester Länge (die bei der x86-Architektur 4096 Zeichen beträgt) verwendet, um das Ergebnis zu konstruieren. Falls die Länge dieses Puffers nicht ausreicht, werden führende Komponenten des Pfades ausgelassen, um innerhalb des Puffers zu bleiben. Ein Fehler wird in diesem Fall nicht zurückgegeben.
Durch diese Schwachstelle könnte beispielsweise eine setuid
-Anwendung, die mit zusätzlichen Privilegien läuft, vom Betriebssystem die Information erhalten, daß sich das aktuelle Verzeichnis in einem bestimmten Verzeichnisbaumes befindet. Da derartige Anwendungen aber sowieso möglichst immer absolute Pfade verwenden sollten, ist es unwahrscheinlich, daß eine Anwendung durch dieses Problem anfällig für Angriffe wird, wenn sie nicht schon selbst unsicher programmiert ist.
Gegenmaßnahmen
Gegenwärtig sind keine Patches verfügbar. Das Problem scheint nicht so gravierend zu sein, daß Akutmaßnahmen notwendig sind; es sollte aber die Installation eines nicht verwundbaren Kernels eingeplant werden.
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=760