Operations | Definition |
Validate | Validate operation – Check data syntax (e.g., proper form or grammar, missing symbols or elements) in order to accept or sanitize it. |
Sanitize | Sanitize operation – Modify data (e.g., neutralize/escape, repair/add, filter/remove symbols or elements) to make it valid (well-formed). |
Operands | Definition |
Data | Data operand – The data value of an object – i.e., the actual value that is stored in memory. |
Causes | Definition |
Code Bug | Code Bug type – An error in the implementation of an operation – proper operands over an improper operation. It is the roor cause of a security vulnerability. Must be fixed to resolve the vulnerability. |
Missing Code | Missing Code bug - The operation is misplaced entirely absent. |
Erroneous Code | Erroneous Code bug - There is a coding error in the implementation of the operation. |
Specification Bug | Specification Bug type – A defect in the metadata or algorithm of an operation – proper operands over an improper operation. It is the roor cause of a security vulnerability. It must be fixed to resolve the vulnerability. |
Under-Restrictive Policy | Accepts bad data. |
Over-Restrictive Policy | Rejects good data. |
Data Fault | Data Fault/Error type – The data of an object has harmed semantics or inconsistent or wrong value. |
Corrupted Data | Corrupted Data fault/error – The data is modified unintentionally 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 – Policy data is modified unintentionally (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 data of an object has harmed semantics or inconsistent or wrong value. |
Invalid Data | Invalid Data fault/error – The data has harmed syntax due to validation or sanitization errors. |
Injection Final Error | Injection final error type – An exploitable or undefined system behavior caused by validation or sanitization bugs. |
Query Injection | Query Injection final error – Maliciously inserted condition parts (e.g., or 1==1) or entire commands (e.g., drop table) into an input used to construct a query. |
Command Injection | Command Injection final error – Maliciously inserted new commands into the input to a command sent to an OS or a server. |
Source Code Injection | Source Code Injection final error – Maliciously inserted new code (incl. with <> elements) into an input used as a part of an executing application code. |
Parameter Injection | Parameter Injection final 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 final 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 operation the operation with a bug or faulty operand is performed. |
Safelist | Safelist operation attribute – The operation is via a policy based on a set of known good content. |
Denylist | Denylist operation attribute – The operation is via a policy based on a set of known bad content; helps reject outright maliciously malformed data. |
Format | Format operation attribute – The operation is via a policy based on syntax format (e.g., defined via regular expression). |
Length | Length operation attribute – The operation uses 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 code of the operation with a bug or faulty operand resides within the software, firmware, or hardware. |
Codebase | Codebase operation attribute – The operation is in the programmer's code - in the application itself. |
Third-Party | Third-Party operation attribute – The operation code is in a third-party source. |
Standard Library | Standard Library operation attribute – The operation code is in the standard library for a particular programming language. |
Compiler/Interpreter | Compiler/Interpreter operation attribute – The operation code is in the language processor that allows execution or creates executables (interpreter, compiler, assembler). |
Execution Space | Execution Space operation attribute type – Shows where the operation with a bug or faulty operand is executed and the privilege level at which it runs. |
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 – Shows where the data comes from. |
Entered | Entered operand attribute – Data are from a user via a user interface (e.g., input field of a dialog or a command prompt). |
Stored | Stored operand attribute – Data are from a permanent storage (e.g., file, database on a storage device); they are at rest. |
In Use | In Use operand attribute – Data are from a volatile storage (e.g., RAM, cache memory). |
Transferred | Transferred operand attribute – Data are from another device via a network (e.g., connecting analog device or another computer). |