Operations | Definition |
Validate | Check data syntax (proper form/grammar) in order to accept (and possibly sanitize) or reject it (incl. check for missing symbols/elements). |
Sanitize | Modify data (neutralize/escape, filter/remove, repair/add symbols) to make it valid (well-formed). |
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 |
Corrupted Data | Unintentionally modified data due to a previous weakness (e.g., with a decompress or a decrypt operation); would lead to invalid data for next weakness. |
Tampered Data | Maliciously modified data due to a previous weakness (e.g., with a deserialize, authorize, or crypto verify operation); would lead to injection. |
Corrupted Policy Data | Unintentionally modified policy data (the values the policy checks for) due to a previous weakness. |
Tampered Policy Data | Maliciously modified policy data (the values the policy checks for) due to a previous weakness. |
Consequences | Definition |
Data Error | The object data has harmed semantics or inconsistent or wrong value |
Invalid Data | Data with harmed syntax due to sanitization errors. |
Injection Final Error | An exploitable or undefined system behavior caused by 'code separation' data validation bugs. |
Query Injection | Maliciously inserted condition parts (e.g., or 1==1) or entire commands (e.g., drop table) into an input used to construct a database query. |
Command Injection | Maliciously inserted new commands into the input to a command sent to an OS or a server. |
Source Code Injection | Maliciously inserted new code (incl. with <> elements) into an input used as a part of an executing application code. |
Parameter Injection | Maliciously inserted of data (e.g., with & parameter separator) into an input used as a parameter/argument in other parts of the code. |
File Injection | Maliciously inserted data (e.g., with .. and / or with file entries) into an input used to access/modify files or as a file content. |
Operations Attributes | Definition |
Mechanism | Shows how the buggy/faulty operation code is performed. |
Safelist | A policy based on a set of known good content. |
Denylist | A policy based on a set of known bad content; helps reject outright maliciously malformed data. |
Format | A policy based on syntax format (e.g., defined via regular expression). |
Length | A policy based on allowed number of characters in data. Note that this is not about the data value as size of an object. |
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). |