...
Using an invalid iterator range is similar to allowing a buffer overflow, which can lead to an attacker running arbitrary code.
Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
CTR53-CPP | High | Probable | No | HighNo | P6 | L2 |
Automated Detection
Tool | Version | Checker | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| overflow_upon_dereference | |||||||||||
| CodeSonar |
| LANG.MEM.BO | Buffer Overrun | ||||||||||
| Helix QAC |
| C++3802 | |||||||||||
| Parasoft C/C++test |
| CERT_CPP-CTR53-a | Do not use an iterator range that isn't really a range | ||||||||||
| PRQA QA-C++Polyspace Bug Finder |
| CERT C++_V: CTR53-CPP | Checks for invalid iterator range (rule partially covered).3802 | ||||||||||
| PVS-Studio |
| V539, V662, V789 | Helix QAC | | Include Page | | Helix QAC_V | Helix QAC_V
Related Vulnerabilities
In Fun with erase(), Chris Rohlf discusses the exploit potential of a program that calls vector::erase() with invalid iterator ranges [Rohlf 2009].
...