Operations | Definition |
Validate | Validate operation – Check data syntax (proper form/grammar, incl. check for missing symbols/elements) in order to accept (and possibly sanitize) or reject it. |
Sanitize | Sanitize operation – Modify data (neutralize/escape, filter/remove, repair/add symbols) to make it valid (well-formed). |
Operands | Definition |
Data | Data operand – The data value of an object – stored in object's memory. |
Causes | Definition |
Code Bug | Code Bug Type – A code operation defect – proper operands over an improper operation. A first cause for the chain of weaknesses underlying a software security vulnerability. Must be fixed to resolve the vulnerability. |
Missing Code | |
Erroneous Code | |
Specification Bug | Specification Bug Type – A specification operation defect – proper operands over an improper operation. A first cause for the chain of weaknesses underlying a software security vulnerability. Must be fixed to resolve the vulnerability. |
Under-Restrictive Policy | |
Over-Restrictive Policy | |
Data Fault | Data Fault/Error Type – The object data has harmed semantics or inconsistent or wrong value |
Corrupted Data | Corrupted Data fault/error – 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 | Tampered Data fault/error – 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 | Corrupted Policy Data fault/error – Unintentionally modified policy data (the values the policy checks for) due to a previous weakness. |
Tampered Policy Data | Tampered Policy Data fault/error – Maliciously modified policy data (the values the policy checks for) due to a previous weakness. |
Consequences | Definition |
Data Error | Data Fault/Error Type – The object data has harmed semantics or inconsistent or wrong value |
Invalid Data | Invalid Data fault/error – Data with harmed syntax due to sanitization errors. |
Injection Final Error | Injection exploitable error type – An exploitable or undefined system behavior caused by 'code separation' data validation bugs. |
Query Injection | Query Injection exploitable error – 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 | Command Injection exploitable error – Maliciously inserted new commands into the input to a command sent to an OS or a server. |
Source Code Injection | Source Code Injection exploitable error – Maliciously inserted new code (incl. with <> elements) into an input used as a part of an executing application code. |
Parameter Injection | Parameter Injection exploitable error – Maliciously inserted data (e.g., with & parameter separator) into an input used as a parameter/argument in other parts of the code. |
File Injection | File Injection exploitable error – 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 | Mechanism operation attribute type – Shows how the buggy/faulty operation code is performed. |
Safelist | Safelist operation attribute – A policy based on a set of known good content. |
Denylist | Denylist operation attribute – A policy based on a set of known bad content; helps reject outright maliciously malformed data. |
Format | Format operation attribute – A policy based on syntax format (e.g., defined via regular expression). |
Length | Length operation attribute – 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 | Source Code operation attribute type – Shows where the buggy/faulty operation code is in the program – in what kind of software. |
Codebase | Codebase operation attribute – The operation is in the programmer's code - in the application itself. |
Third-Party | Third-Party operation attribute – The operation is in a third-party software. |
Standard Library | Standard Library operation attribute – The operation is in the standard library for a particular programming language. |
Compiler/Interpreter | Compiler/Interpreter operation attribute – The operation is in the language processor that allows execution or creates executables (compiler, assembler, interpreter). |
Execution Space | Execution Space operation attribute type – Shows where the buggy/faulty operation code is running or with what privilege level. |
Local | Local operation attribute – The bugged code runs in an environment with access control policy with limited (local user) permission. |
Admin | Admin operation attribute – The bugged code runs in an environment with access control policy with unlimited (admin user) permission. |
Bare-Metal | Bare-Metal operation attribute – 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 | Data State operand attribute type operand attribute – Shows where the data come from. |
Entered | Entered operand attribute – The data are from a user via a user interface (e.g., input field of a dialog or a command prompt). |
Stored | Stored operand attribute – The data are from a permanent storage (e.g., file, database on a storage device). |
In Use | In Use operand attribute – The data are from a volatile storage (e.g., RAM, cache memory). |
Transferred | Transferred operand attribute – The data are from another device via a network (e.g., connecting analog device or another computer). |