• CWE-558: 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.

CWE-Referenz › CWE-558: Use of getlogin() in Multithreaded Application

CWE-558: Use of getlogin() in Multithreaded Application

CWE ID: 558
Name: Use of getlogin() in Multithreaded Application

Beschreibung

Das Produkt verwendet die Funktion getlogin() in einem multithreaded Kontext, was potenziell dazu führen kann, dass falsche Werte zurückgegeben werden.

Erweiterte Beschreibung

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.

Risikominderungsmaßnahmen

Maßnahme (Architecture and Design)

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.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Verwenden Sie stattdessen getlogin_r(), welches reentrant ist, was bedeutet, dass andere Prozesse daran gehindert werden, den Benutzernamen zu ändern.

Ist Ihre IT-Infrastruktur betroffen?

Schwachstellen wie CWE-558: Use of getlogin() in Multithreaded Application werden von Angreifern gezielt gesucht — meist automatisiert und ohne Rücksicht darauf, wie groß das betroffene Unternehmen ist. Ob eine solche Lücke bei Ihnen tatsächlich offen steht, lässt sich nur durch Prüfung feststellen:

  • Schwachstellen-Scan — wiederkehrende Prüfung Ihrer Infrastruktur auf bekannte Lücken wie diese
  • Penetrationstest — manuelle Prüfung eigener Software auf Schwachstellen, die kein Werkzeug findet
  • Threat Modeling — Schwachstellenklassen im Entwurf vermeiden, statt sie später zu suchen
Kostenloses Erstgespräch Für mittelständische Unternehmen