...
Deadlock prevents multiple threads from progressing, halting program execution. A denial-of-service attack is possible if the attacker can create the conditions for deadlock.
Rule | Severity | Likelihood |
|---|
Detectable | Repairable | Priority | Level |
|---|---|---|---|
CON53-CPP | Low | Probable |
No | No |
P2 | L3 |
Automated Detection
| Tool | Version | Checker | Description |
|---|---|---|---|
| CodeSonar |
|
|
| CONCURRENCY.LOCK.ORDER | Conflicting lock order | |||||||
| Coverity | 6.5 | DEADLOCK | Fully implemented | ||||||
| Helix QAC |
| C++1772, C++1773 | |||||||
| Parasoft C/C++test |
| CERT_CPP-CON53-a | Do not acquire locks in different order | |||||||
| Polyspace Bug Finder |
| CERT C++: CON53-CPP | Checks for deadlocks | ||||||
| Security Reviewer - Static Reviewer |
| UNSAFE_08 | Fully implemented |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
| CERT Oracle Secure Coding Standard for Java | LCK07-J. Avoid deadlock by requesting and releasing locks in the same order |
| MITRE CWE | CWE-764, Multiple Locks of a Critical Resource |
Bibliography
| [ISO/IEC 14882-2014] | Subclause 30.4, "Mutual Exclusion" |
...