...
The Internet Systems Consortium's (ISC) Dynamic Host Configuration Protocol (DHCP) contained a vulnerability that introduced several potential buffer overflow conditions [VU#654390]. ISC DHCP makes use of the vsnprintf() function for writing various log file strings; vsnprintf() is defined in the Standard for Information Technology—Portable the Portable Operating System Interface (POSIX®POSIX®), Base Specifications, Issue 7 [IEEE Std 1003.1:2013] as well as in the C Standard. For systems that do not support vsnprintf(), a C include file was created that defines the vsnprintf() function to vsprintf(), as shown in this noncompliant code example:
...
Replacing secure functions with less secure functions is a very risky practice because developers can be easily fooled into trusting the function to perform a security check that is absent. This may be a concern, for example, as developers attempt to adopt more secure functions , such as the C11 Annex K functions, that might not be available on all platforms. (See VOID STR07-C. Use the bounds-checking interfaces for remediation of existing string manipulation code.)
Recommendation | Severity | Likelihood |
|---|
Detectable | Repairable | Priority | Level |
|---|---|---|---|
PRE09-C | High | Likely |
Yes | No | P18 | L1 |
Automated Detection
| Tool | Version | Checker | Description |
|---|
| Astrée |
| Supported, but no explicit checker | |||||||
| Axivion Bauhaus Suite |
| CertC-PRE09 | |||||||
| Cppcheck Premium |
| premium-cert-pre09-c | |||||||
| Helix QAC |
| C5003 | |||||||
| Polyspace Bug Finder |
| Checks for:
Rec. fully covered. |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
| SEI CERT C++ |
| Coding Standard | VOID PRE09-CPP. Do not replace secure functions with less secure functions |
| ISO/IEC TR 24772:2013 | Executing or Loading Untrusted Code [XYS] |
| MITRE CWE | CWE-684, Failure to provide specified functionality |
Bibliography
| [IEEE Std 1003.1:2013] | XSH, System Interfaces, vsnprintf, vsprintf |
| [Seacord 2013] | Chapter 6, "Formatted Output" |
| [VU#654390] |
...
...