SQ14120
Detected Windows executable files that do not implement language specific guarded exception handling.
priority | CI/CD status | severity | effort | RL level | RL assessment |
---|---|---|---|---|---|
pass | medium | medium | None | None |
About the issueโ
Control Flow Guard (CFG/CFI) protects the code flow integrity by ensuring that indirect calls are made only to vetted functions. This mitigation protects dynamically resolved function targets by instrumenting the code responsible for transferring execution control. Higher level programming languages implement structured exception handling by managing their own code flow execution paths. As such, they are subject to code flow hijacking during runtime. Language-specific exception handling mitigation enforces execution integrity by instrumenting calls to exception code dispatching. Any deviation from the known and trusted code flow paths will cause the application to terminate. This makes malicious code less likely to execute.
How to resolve the issueโ
- It's highly recommended to enable this option for all software components used at security boundaries, or those that process user-controlled inputs.
- To enable this mitigation, refer to your programming language toolchain documentation.
- In Microsoft VisualStudio, you can enable CFG mitigation by passing /guard:cf and /guard:ehcont parameters to the compiler and linker.
Incidence statisticsโ
Not relevant for this type of issue.
Recommended readingโ
- What is Exception Handling? (External resource - SoftCo)
- Control Flow Guard for platform security (External resource - Microsoft)
- Hijack Execution Flow (External resource - Mitre Att&ck)