CWE-667 — Improper Locking
CWE-667: Improper Locking
MITRE CWE weakness
| Kind | Weakness |
| Abstraction | Class |
| Status | Draft |
| Likelihood of exploit | — |
Description
The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.
Locking is a type of synchronization behavior that ensures that multiple independently-operating processes or threads do not interfere with each other when accessing the same resource. All processes/threads are expected to follow the same steps for locking. If these steps are not followed precisely - or if no locking is done at all - then another process/thread could modify the shared resource in a way that is not visible or predictable to the original process. This can lead to data or memory corruption, denial of service, etc.
Common consequences
- Availability: DoS: Resource Consumption (CPU)
Mitigations
Implementation — Use industry standard APIs to implement locking mechanism.
References
- CWE page: https://cwe.mitre.org/data/definitions/667.html
- CWE list: https://cwe.mitre.org/data/index.html