...
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 |
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].
...