This vulnerability occurs when a critical resource, like a lock or semaphore, is unlocked more times than it was locked, putting the system into an unexpected and potentially unstable state.
In concurrent software, critical sections of code are protected using synchronization mechanisms like mutexes or semaphores. This flaw happens when the unlock or release function is called excessively, disrupting the intended lock/unlock balance. This mismatch corrupts the resource's state management, making subsequent program behavior unreliable. The specific impact depends on the lock type and implementation. For example, with counting semaphores, extra unlocks artificially inflate the available resource count. This can cause a system crash, data corruption, or unpredictable behavior when the pool is exhausted, as the program operates under the false assumption that more resources are available than truly exist.
Impact: DoS: Crash, Exit, or RestartModify MemoryUnexpected State