1464
Mapped Taxonomy Name Node ID Fit Mapped Node Name
CERT C Secure Coding MEM30-
C
CWE More
Abstract
Do not access freed memory
CWE-667: Improper Locking
Weakness ID : 667
Structure : Simple
Abstraction : Class
Description
The product does not properly acquire or release a lock on a resource, leading to unexpected
resource state changes and behaviors.
Extended Description
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.
Relationships
The table(s) below shows the weaknesses and high level categories that are related to this
weakness. These relationships are defined as ChildOf, ParentOf, MemberOr and give insight to
similar items that may exist at higher and lower levels of abstraction. In addition, relationships such
as PeerOf and CanAlsoBe are defined to show similar weaknesses that may want to be explored.
Relevant to the view "Research Concepts" (CWE-1000)
Nature Type ID Name Page
ChildOf 662 Improper Synchronization 1448
ParentOf 412 Unrestricted Externally Accessible Lock 1000
ParentOf 413 Improper Resource Locking 1003
ParentOf 414 Missing Lock Check 1007
ParentOf 609 Double-Checked Locking 1362
ParentOf 764 Multiple Locks of a Critical Resource 1604
ParentOf 765 Multiple Unlocks of a Critical Resource 1605
ParentOf 832 Unlock of a Resource that is not Locked 1752
ParentOf 833 Deadlock 1753
ParentOf 1232 Improper Lock Behavior After Power State Transition 2010
ParentOf 1233 Security-Sensitive Hardware Controls with Missing Lock Bit
Protection