1449
Extended Description
Synchronization refers to a variety of behaviors and mechanisms that allow two or more
independently-operating processes or threads to ensure that they operate on shared resources in
predictable ways that do not interfere with each other. Some shared resource operations cannot
be executed atomically; that is, multiple steps must be guaranteed to execute sequentially, without
any interference by other processes. Synchronization mechanisms vary widely, but they may
include locking, mutexes, and semaphores. When a multi-step operation on a shared resource
cannot be guaranteed to execute independent of interference, then the resulting behavior can be
unpredictable. Improper synchronization could 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 691 Insufficient Control Flow Management 1517
ChildOf 664 Improper Control of a Resource Through its Lifetime 1454
ParentOf 663 Use of a Non-reentrant Function in a Concurrent Context 1452
ParentOf 667 Improper Locking 1464
ParentOf 820 Missing Synchronization 1720
ParentOf 821 Incorrect Synchronization 1722
ParentOf 1058 Invokable Control Element in Multi-Thread Context with non-
Final Static Storable or Member Element