• CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition

Das Produkt überprüft den Zustand einer Ressource vor deren Nutzung, jedoch kann sich der Zustand der Ressource zwischen der Prüfung und der Nutzung ändern, wodurch die Ergebnisse der Prüfung ungültig werden. Dies kann dazu führen, dass das Produkt ungültige Aktionen ausführt, wenn die Ressource in einem unerwarteten Zustand vorliegt.

CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition

CWE ID: 367
Name: Time-of-check Time-of-use (TOCTOU) Race Condition

Beschreibung

Das Produkt überprüft den Zustand einer Ressource vor deren Nutzung, jedoch kann sich der Zustand der Ressource zwischen der Prüfung und der Nutzung ändern, wodurch die Ergebnisse der Prüfung ungültig werden. Dies kann dazu führen, dass das Produkt ungültige Aktionen ausführt, wenn die Ressource in einem unerwarteten Zustand vorliegt.

Erweiterte Beschreibung

Diese Schwäche kann sicherheitsrelevant werden, wenn ein Angreifer den Zustand der Ressource zwischen Prüfung und Nutzung beeinflussen kann. Dies kann bei gemeinsam genutzten Ressourcen wie Files, Memory oder sogar Variablen in multithreaded Programmen auftreten.

Risikominderungsmaßnahmen

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Der grundlegendste Ratschlag zur Behebung von TOCTOU-Vulnerabilities ist, keine Prüfung vor der Nutzung durchzuführen. Dies löst zwar nicht das zugrundeliegende Problem der Ausführung einer Funktion auf einer Ressource, deren Zustand und Identität nicht sichergestellt werden können, hilft aber dennoch, das falsche Sicherheitsgefühl zu reduzieren, das durch die Prüfung vermittelt wird.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Wenn die Datei, die verändert wird, dem aktuellen Benutzer und der aktuellen Gruppe gehört, setze die effektiven gid und uid auf die des aktuellen Benutzers und der aktuellen Gruppe, wenn diese Anweisung ausgeführt wird.

Maßnahme (Architecture and Design)

Effektivität: Unknown
Beschreibung: Begrenze das Ineinandergreifen von Operationen auf Dateien von mehreren Prozessen.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Wenn Operationen nicht atomar durchgeführt werden können und der Zugriff auf die Ressource zwischen mehreren Prozessen oder Threads geteilt werden muss, versuche, die Zeitspanne (CPU cycles) zwischen der Prüfung und der Nutzung der Ressource zu minimieren. Dies behebt das Problem zwar nicht, kann aber die Durchführung eines Angriffs erschweren.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Überprüfe die Ressource nach dem Aufruf zur Nutzung erneut, um zu verifizieren, dass die Aktion ordnungsgemäß ausgeführt wurde.

Maßnahme (Architecture and Design)

Effektivität: Unknown
Beschreibung: Stelle sicher, dass ein geeigneter Mechanismus zur Umgebungs-Locking eingesetzt werden kann, um Ressourcen effektiv zu schützen.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Sorge dafür, dass das Locking vor der Prüfung stattfindet, im Gegensatz zu danach, sodass die Ressource, wie sie geprüft wird, mit der Ressource übereinstimmt, während sie in Gebrauch ist.