This flaw occurs when a Singleton class is implemented without proper thread-safe controls, allowing multiple instances to be created in concurrent environments.
In a multi-threaded application, if the Singleton's instance creation logic lacks synchronization mechanisms like locks or atomic operations, multiple threads can simultaneously pass the instance null-check and create separate objects. This breaks the core Singleton guarantee of a single, shared instance, leading to inconsistent state, wasted resources, and unpredictable behavior. The absence of proper locking can also introduce severe concurrency issues such as deadlocks or livelocks, compromising the application's reliability. While this is fundamentally a reliability defect, it can become a security vulnerability if an attacker can trigger or exploit the unstable state, causing denial of service or bypassing intended controls.
Impact: Reduce Reliability