Operations | Definition |
Verify | Check data semantics (proper value/meaning) in order to accept (and possibly correct) or reject it. |
Correct | Modify data (assign new value, remove) to make it accurate. |
Operands | Definition |
Data | The data value of an object -- stored in object's memory. |
Causes | Definition |
Code Defect Bug | The operation has a bug, which is the first cause for the chain of weaknesses underlying a software security vulnerability. The bug must be fixed to resolve the vulnerability. |
Missing Code | The entire operation implementation or a part of its specification is absent. |
Erroneous Code | The operation implementation has a bug. |
Specification Defect Bug | A specification (algorithm, protocol) of an operation an error or a rule (policy, keying material) used by the operation has an error, which when implemented becomes the bug causing the chain of weaknesses underlying a software security vulnerability. It must be fixed to fix the bug and to resolve the vulnerability. |
Under-Restrictive Policy | Accepts bad data. |
Over-Restrictive Policy | Rejects good data. |
Data Fault | The object data has harmed semantics or inconsistent or wrong value |
Invalid Data | Data with harmed syntax due to sanitization errors. |
Consequences | Definition |
Data Error | The object data has harmed semantics or inconsistent or wrong value |
Wrong Value | Data value is not accurate value (e.g., outside of a range). |
Inconsistent Value | Data value does not correspond to the value of a related data (e.g., inconstancy between the value of a size variable and the actual buffer size). |
Type Error | The set or range of allowed values is wrong or the operations allowed on them are wrong. |
Wrong Type | A data type range or structure is not correct. |
Operations Attributes | Definition |
Mechanism | Shows how the buggy/faulty operation code is performed. |
Value | Checking data for a specific value (incl. NULL or list of values). |
Quantity | Checking data for a specific measurable value (e.g., size, time, rate, frequency). |
Range | Checking data are within a (min, max) interval. |
Data Type | A set of allowed values and the operations allowed over them. |
Other Rules | Check data against other business logic. |
Source Code | Shows where the buggy/faulty operation code is in the program -- in what kind of software. |
Codebase | The operation is in the programmer's code - in the application itself. |
Third-Party | The operation is in a third-party software. |
Standard Library | The operation is in the standard library for a particular programming language. |
Compiler/Interpreter | The operation is in the language processor that allows execution or creates executables (compiler, assembler, interpreter). |
Execution Space | Shows where the buggy/faulty operation code is running or with what privilege level). |
Local | The bugged code runs in an environment with access control policy with limited (local user) permission. |
Admin | The bugged code runs in an environment with access control policy with unlimited (admin user) permission. |
Bare-Metal | The bugged code runs in an environment without privilege control. Usually, the program is the only software running and has total access to the hardware. |
Operands Attributes | Definition |
Data State | Shows where the data come from. |
Entered | The data are from a user via a user interface (e.g., text field). |
Stored | The data are from a permanent storage (e.g., file, database on a storage device). |
In Use | The data are from a volatile storage (e.g., RAM, cache memory). |
Transferred | The data are from another device via a network (e.g., connecting analog device or another computer). |