CWE ID: 558
Name: Use of getlogin() in Multithreaded Application
Das Produkt verwendet die Funktion getlogin()
in einem multithreaded Kontext, was potenziell dazu führen kann, dass falsche Werte zurückgegeben werden.
Die Funktion getlogin()
gibt einen Pointer auf einen String zurück, der den Namen des Benutzers enthält, der mit dem aufrufenden Prozess assoziiert ist. Die Funktion ist nicht reentrant, was bedeutet, dass bei Aufrufen aus einem anderen Prozess die Inhalte nicht gesperrt werden und der Wert des Strings durch einen anderen Prozess verändert werden kann. Dies macht die Verwendung sehr riskant, da der Benutzername von anderen Prozessen geändert werden kann, wodurch die Zuverlässigkeit der Funktion in Frage gestellt wird.
Effektivität: Unknown
Beschreibung: Die Verwendung von Namen für Sicherheitszwecke wird nicht empfohlen. Namen sind leicht zu fälschen und können überlappende User IDs aufweisen, was zu Verwirrung oder Identitätsdiebstahl führen kann.
Effektivität: Unknown
Beschreibung: Verwenden Sie stattdessen getlogin_r()
, welches reentrant ist, was bedeutet, dass andere Prozesse daran gehindert werden, den Benutzernamen zu ändern.