This vulnerability occurs when a critical resource, such as a file, data structure, or connection, is locked more times than the software logic intended, putting the system into an unstable or unresponsive state.
In concurrent software, like multi-threaded applications or servers, each extra lock on a critical resource consumes system capacity. For pooled resources managed by semaphores, this drains the available pool, which can cause severe performance degradation or a complete denial of service. An attacker can often exploit this flaw to exhaust resources, making it functionally similar to an unrestricted lock attack. With binary locks (like mutexes), the problem is one of progress. Since the lock is already held by the current process, any subsequent attempt by the same process to lock it again will typically fail or block indefinitely. This creates a deadlock scenario where the software halts, waiting for a lock it can never acquire, causing the affected component to freeze.
Impact: DoS: Resource Consumption (CPU)DoS: Crash, Exit, or RestartUnexpected State