Operations | Definition |
Validate | Validate operation – Check data syntax (e.g., proper form or grammar, including missing symbols or elements) in order to accept (and possibly sanitize) or reject it. |
Sanitize | Sanitize operation – Modify data (e.g., 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 – Defect in the implementation of the operation – 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 | Missing Code bug - The operation is entirely absent. |
Erroneous Code | Erroneous Code bug - There is a coding error in the implementation of the operation. |
Specification Bug | Specification Bug type – Defect in the design of the operation – 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 | Accepts bad data. |
Over-Restrictive Policy | Rejectsgooddata. |
Data Fault | Data Fault/Error type – The object data 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 object data has harmed semantics or inconsistent or wrong value. |
Invalid Data | Invalid Data fault/error – The data has 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 – 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 buggy/faulty operation code is in software or firmware. |
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 software. |
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 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 – 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). |