• CWE-785: Use of Path Manipulation Function without Maximum-sized Buffer

Das Produkt ruft eine Funktion zur Normalisierung von Pfaden oder Dateinamen auf, stellt jedoch einen Ausgabepuffer bereit, der kleiner ist als die maximal mögliche Größe, beispielsweise PATH_MAX.

CWE-785: Use of Path Manipulation Function without Maximum-sized Buffer

CWE ID: 785
Name: Use of Path Manipulation Function without Maximum-sized Buffer

Beschreibung

Das Produkt ruft eine Funktion zur Normalisierung von Pfaden oder Dateinamen auf, stellt jedoch einen Ausgabepuffer bereit, der kleiner ist als die maximal mögliche Größe, beispielsweise PATH_MAX.

Erweiterte Beschreibung

Die Übergabe eines zu klein dimensionierten Ausgabepuffers an eine Pfadmanipulationsfunktion kann zu einem Buffer Overflow führen. Zu diesen Funktionen gehören unter anderem realpath(), readlink(), PathAppend() und weitere.

Risikominderungsmaßnahmen

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Es ist unerlässlich, Ausgabepuffer anzugeben, deren Größe ausreichend ist, um das maximal mögliche Ergebnis von Pfadmanipulationsfunktionen zu verarbeiten.

Detaillierter Hintergrund

Windows stellt eine umfangreiche Anzahl an Utility-Funktionen bereit, die Puffer mit Dateinamen manipulieren. In den meisten Fällen wird das Ergebnis in einem Puffer zurückgegeben, der als Input übergeben wurde (üblicherweise wird der Dateiname in place modifiziert). Die meisten Funktionen erfordern, dass der Puffer mindestens MAX_PATH Bytes lang ist, jedoch sollte die Dokumentation für jede Funktion einzeln geprüft werden. Sollte der Puffer nicht ausreichend Platz bieten, um das Ergebnis der Manipulation zu speichern, kann ein buffer overflow auftreten.