• CWE-427: Uncontrolled Search Path Element

Das Produkt verwendet einen festen oder kontrollierten Suchpfad, um Ressourcen zu finden, aber einzelne Orte innerhalb dieses Pfades können sich unter der Kontrolle von unbefugten Akteuren befinden.

CWE-427: Uncontrolled Search Path Element

CWE ID: 427
Name: Uncontrolled Search Path Element

Beschreibung

Das Produkt verwendet einen festen oder kontrollierten Suchpfad, um Ressourcen zu finden, aber einzelne Orte innerhalb dieses Pfades können sich unter der Kontrolle von unbefugten Akteuren befinden.

Risikominderungsmaßnahmen

Maßnahme (Architecture and Design)

Effektivität: Unknown
Beschreibung: Der Suchpfad sollte festlegen (hard-code) auf eine Menge bekannter, sicherer Werte (z.B. Systemverzeichnisse) oder ausschließlich vom Administrator in einer Konfigurationsdatei definieren lassen. Eine Modifikation dieser Einstellungen durch externe Parteien sollte nicht erlaubt sein. Achten Sie dabei sorgfältig darauf, verwandte Schwachstellen wie CWE-426 und CWE-428 zu vermeiden.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Beim Aufruf anderer Programme sollten diese stets mit vollständig qualifizierten Pfadangaben (fully-qualified pathnames) angegeben werden. Obwohl dies ein effektiver Ansatz ist, kann Code, der vollständig qualifizierte Pfade verwendet, möglicherweise nicht auf andere Systeme portiert werden, die nicht die gleichen Pfade verwenden. Die Portierbarkeit kann verbessert werden, indem die vollständigen Pfade an einer zentralen, leicht modifizierbaren Stelle im Quellcode gespeichert und der Code auf diese Pfade referenziert.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Entfernen oder beschränken Sie alle Umgebungsvariablen vor dem Aufruf anderer Programme. Dies umfasst die PATH-Umgebungsvariable, LD_LIBRARY_PATH und andere Einstellungen, die den Speicherort von Code-Bibliotheken identifizieren, sowie alle anwendungsspezifischen Suchpfade.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Überprüfen Sie Ihren Suchpfad vor der Verwendung und entfernen Sie alle Elemente, die wahrscheinlich unsicher sind, wie beispielsweise das aktuelle Arbeitsverzeichnis oder ein temporäres Verzeichnis. Da es sich hierbei um einen denylist-Ansatz handelt, ist dies möglicherweise keine vollständige Lösung.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Nutzen Sie stattdessen Funktionen, die explizite Pfade erfordern. Die Verwendung anderer, leicht verfügbarer Funktionen, die explizite Pfade benötigen, ist eine sichere Methode, um dieses Problem zu umgehen. Beispielsweise benötigt system() in C keinen vollständigen Pfad, da die Shell die Suche nach dem Programm mithilfe der PATH-Umgebungsvariable übernehmen kann, während execl() und execv() einen vollständigen Pfad erfordern.