...
Referencing an object outside of its lifetime can result in an attacker being able to run arbitrary code.
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
EXP54-CPP | High | Probable | High | P6 | L2 |
Automated Detection
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
Clang |
| -Wdangling-initializer-list | Catches some lifetime issues related to incorrect use of std::initializer_list<> | ||||||
CodeSonar |
| IO.UAC | Use after close Use after free | ||||||
Klocwork |
| CL.FFM.ASSIGN |
LDRA tool suite |
| 42 D, 53 D, 77 D, 1 J, 71 S, 565 S | Partially implemented | ||||||
Parasoft C/C++test |
|
|
| BD-RES-FREE |
Parasoft Insure++ |
Runtime detection |
PRQA QA-C++ | 9.1 | 2812, 2813, 2814, 2930, 2931, 2932, 2933, 2934, 4003, 4026 |
PVS-Studio | 6.22 | V758 | General analysis rule |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
Bibliography
[Coverity 2007] |
[ISO/IEC 14882-2014] | Subclause 3.8, "Object Lifetime" Subclause 8.5.4, "List-Initialization" |
...