C and C++ Binaries


BADFUNC.PATH.SYSTEM : Use of system

Summary

A use of system() or _wsystem(), which are vulnerable to path spoofing if the path argument is not securely specified.

Properties

Class Name Use of system
Significance style
Mnemonic BADFUNC.PATH.SYSTEM
Categories
MisraC2023 MisraC2023:21.21 The Standard Library function system of <stdlib.h> shall not be used
Misra2012 Misra2012:21.21 The Standard Library function system of <stdlib.h> shall not be used
Misra2004 Misra2004:20.11 The library functions abort, exit, getenv and system from library <stdlib.h> shall not be used
AUTOSARC++14 AUTOSARC++14:M18-0-3 The library functions abort, exit, getenv and system from library <cstdlib> shall not be used.
MisraC++2008 MisraC++2008:18-0-3 The library functions abort, exit, getenv and system from library <cstdlib> shall not be used.
MisraC++2023 MisraC++2023:21.2.3 The Standard Library function system of <cstdlib> shall not be used
CWE CWE:676 Use of Potentially Dangerous Function
TS17961 TS17961:5.8-syscall 5.8. Calling system
CERT-C CERT-C:ENV33-C Do not call system()
JSF++ JSF++:24 The library functions abort, exit, getenv and system from library <stdlib.h> shall not be used.
DISA-6r1 DISA-6r1:V-222604 The application must protect from command injection.
DISA-5r3 DISA-5r3:V-70261 The application must protect from command injection.
DISA-4r3 DISA-4r3:V-70261 The application must protect from command injection.
DISA-3r10 DISA-3r10:V-6157 The designer will ensure the application does not contain invalid URL or path references.
  DISA-3r10:V-16810 The designer will ensure the application does not allow command injection.
OWASP-2017 OWASP-2017:A1 Injection
OWASP-2021 OWASP-2021:A3 Injection
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Use of system"

Resolution

int system(const char *command)
int _wsystem(const wchar_t *command)

When you are warned about a use of system() or _wsystem(), make sure that make sure that any executable in the command argument is specified with an absolute path name from a trusted source.

Once you are satisfied that these conditions hold, you can change the warning state to Suppressed.

Relevant Configuration File Parameters

This class is implemented using a BAD_FUNCTION_* rule set in the general template configuration file.

The following configuration file parameters affect checks for this warning class.