@@ -883,22 +883,78 @@ Mitigations are how a technical requirement can be satisfied. Mitigations must b
This section is a list of technical requirements necessary to satisfy the CRA essential requirements. Each technical requirement can be satisfied by one or more potential mitigations. Each mitigation may or may not be appropriate for an individual use case. The following section will define which mitigations will be required, depending on a risk factor, the overall risk tolerance, and/or a use case in the following section.
### 5.2.2 **TR-OOBM**: Mitigations for out-of-bounds memory access
Each mitigation is described with the following fields:
#### 5.2.2.1 Threat description
* Mitigation: brief description of the mitigation
* Test: how to test that the mitigation is implemented
* Result: what output
* Output: the warning or error message produced by the checker
* False negative/positive prevention: if necessary, a way to prove that the test distinguishes between conformant and non-conformant products
* Requirements: features of the product as placed on the market necessary to run the test
* Documentation: what data the manufacturer must save for provision to the MSA
Threat: attacker uses an operating systems vulnerability to access memory in an unauthorized manner.
Threat: attacker tries to access memory that belongs to another user or the kernel in an unauthorized manner.
#### 5.2.X.x **MI-SSCA**: Static source code analysis for memory protection
Use case: operating systems where all executables share a single address space, memory protection settings, and processor privilege level (e.g. embedded, low power, special purpose, unikernel)
* Mitigation: statically check source code for out-of-bounds memory access
* Test: source code that accesses memory out-of-bounds in a variety of defined ways (TBD)
* Result: warning or error
* Output: the warning or error message produced by the checker
* False positive test: source code that does not access memory out of bounds does not produce the warning or error
* Requirements: board support package
* Documentation: source code and output of the tests, source code of operating system, checker information
#### 5.2.X.x **MI-XXXX**: Memory protection using MMU
Use case: Any operating system that requires process isolation (anything with multiple users, potentially untrusted users, untrusted userspace executables, etc.)
* Mitigation: Use MMU to mark memory regions as inaccessible to an executable before scheduling it
* Test: Attempt to read, write, or execute memory in a different memory isolation domain
* Result: error, trap, signal, or kill thread
* Output: executes error handling code or thread is killed
* Requirements: ability to compile and execute code
* Documentation: test source code, instructions to compile, output of error handling or log message for thread kill
### 5.2.X **TR-OOBM**: Out-of-bounds memory access prevention or mitigation
#### 5.2.X.1 Threat description
Threat: attacker uses an operating systems vulnerability to access memory in an unauthorized manner while possessing elevated memory access privileges.