Invokable Control Element in Multi-Thread Context with non-Final Static Storable or Member Element

Incomplete Base
Structure: Simple
Description

This happens when a method or function, designed to run in a multi-threaded environment, accesses or modifies a non-final static variable or class member. Because the static element is not final, its state can be changed unexpectedly by concurrent threads, leading to race conditions and unpredictable behavior.

Extended Description

In a multi-threaded application, static variables are shared across all instances and threads. When a non-final static member is modified by multiple threads calling the same method simultaneously, the operations can interleave unpredictably. One thread might read a value while another is halfway through updating it, corrupting data and causing logic errors that are difficult to reproduce and debug. This unreliability directly undermines the stability of the application. If an attacker can trigger or influence these concurrent execution paths, they might exploit the resulting race condition to cause a denial of service, bypass security checks, or manipulate application logic for unauthorized access or data corruption.

Common Consequences 1
Scope: Other

Impact: Reduce Reliability

References 1
Automated Source Code Reliability Measure (ASCRM)
Object Management Group (OMG)
01-2016
ID: REF-961
Taxonomy Mapping
  • OMG ASCRM