A process is invoked with sensitive command-line arguments, environment variables, or other elements that can be seen by other processes on the operating system.
Many operating systems allow a user to list information about processes that are owned by other users. Other users could see information such as command line arguments or environment variable settings. When this data contains sensitive information such as credentials, it might allow other users to launch an attack against the product or related resources.
Threat Mapped score: 3.25
Industry: Finiancial
Threat priority: P2 - Serious (High)
CVE: CVE-2005-1387
password passed on command line
CVE: CVE-2005-2291
password passed on command line
CVE: CVE-2001-1565
username/password on command line allows local users to view via "ps" or other process listing programs
CVE: CVE-2004-1948
Username/password on command line allows local users to view via "ps" or other process listing programs.
CVE: CVE-1999-1270
PGP passphrase provided as command line argument.
CVE: CVE-2004-1058
Kernel race condition allows reading of environment variables of a process that is still spawning.
CVE: CVE-2021-32638
Code analysis product passes access tokens as a command-line parameter or through an environment variable, making them visible to other processes via the ps command.
N/A
N/A
Phase | Note |
---|---|
Architecture and Design | N/A |
Implementation | REALIZATION: This weakness is caused during implementation of an architectural security tactic. |
Operation | N/A |
Intro: In the example below, the password for a keystore file is read from a system property.
Body: If the property is defined on the command line when the program is invoked (using the -D... syntax), the password may be displayed in the OS process list.
String keystorePass = System.getProperty("javax.net.ssl.keyStorePassword"); if (keystorePass == null) { System.err.println("ERROR: Keystore password not specified."); System.exit(-1); } ...