CWE-Referenz › CWE-543: Use of Singleton Pattern Without Synchronization in a Multithreaded Context
CWE-543: Use of Singleton Pattern Without Synchronization in a Multithreaded Context
CWE ID: 543
Name: Use of Singleton Pattern Without Synchronization in a Multithreaded Context
Beschreibung
Das Produkt verwendet das Singleton-Pattern bei der Erstellung einer Ressource in einer Multithreaded-Umgebung.
Erweiterte Beschreibung
Die Verwendung eines Singleton-Patterns ist möglicherweise nicht thread-safe.
Risikominderungsmaßnahmen
Maßnahme (Architecture and Design)
Effektivität: Unknown
Beschreibung: Nutzen Sie das Thread-Specific Storage Pattern. Siehe Referenzen.
Maßnahme (Implementation)
Effektivität: Unknown
Beschreibung: Vermeiden Sie die Verwendung von Member-Feldern zur Speicherung von Informationen im Servlet. In Multithreading-Umgebungen führt das Speichern von Benutzerdaten in Servlet-Member-Feldern zu einem Data-Access-Race-Condition.
Maßnahme (Implementation)
Effektivität: Limited
Beschreibung: Vermeiden Sie die Verwendung des Double-Checked-Locking-Patterns in Sprachversionen, die keine Thread-Sicherheit garantieren. Dieses Pattern kann verwendet werden, um den Overhead eines synchronized-Aufrufs zu vermeiden, jedoch wurde in bestimmten Versionen von Java (zum Beispiel) gezeigt, dass es unsicher ist, da es dennoch einen Race-Condition (CWE-209) einführt.
Verwandte Schwachstellen
Ist Ihre IT-Infrastruktur betroffen?
Schwachstellen wie CWE-543: Use of Singleton Pattern Without Synchronization in a Multithreaded Context 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