Headline
GHSA-cxgf-v2p8-7ph7: NuProcess vulnerable to command-line injection through insertion of NUL character(s)
Impact
In all the versions of NuProcess where it forks processes by using the JVM’s Java_java_lang_UNIXProcess_forkAndExec method (1.2.0+), attackers can use NUL characters in their strings to perform command line injection. Java’s ProcessBuilder isn’t vulnerable because of a check in ProcessBuilder.start. NuProcess is missing that check.
This vulnerability can only be exploited to inject command line arguments on Linux.
- On macOS, any argument with a NUL character is truncated at that character. This means the malicious arguments are never seen by the started process.
- On Windows, the entire command line is truncated at the first NUL character. This means the malicious arguments, and any intentional arguments provided after them, are never seen by the started process.
Patches
2.0.5
Workarounds
Users of the library can sanitize command strings to remove NUL characters prior to passing them to NuProcess for execution.
References
None.
Impact
In all the versions of NuProcess where it forks processes by using the JVM’s Java_java_lang_UNIXProcess_forkAndExec method (1.2.0+), attackers can use NUL characters in their strings to perform command line injection. Java’s ProcessBuilder isn’t vulnerable because of a check in ProcessBuilder.start. NuProcess is missing that check.
This vulnerability can only be exploited to inject command line arguments on Linux.
- On macOS, any argument with a NUL character is truncated at that character. This means the malicious arguments are never seen by the started process.
- On Windows, the entire command line is truncated at the first NUL character. This means the malicious arguments, and any intentional arguments provided after them, are never seen by the started process.
Patches
2.0.5
Workarounds
Users of the library can sanitize command strings to remove NUL characters prior to passing them to NuProcess for execution.
References
None.
References
- GHSA-cxgf-v2p8-7ph7
- https://nvd.nist.gov/vuln/detail/CVE-2022-39243
- brettwooldridge/NuProcess#143
- brettwooldridge/NuProcess@29bc09d
Related news
NuProcess is an external process execution implementation for Java. In all the versions of NuProcess where it forks processes by using the JVM's Java_java_lang_UNIXProcess_forkAndExec method (1.2.0+), attackers can use NUL characters in their strings to perform command line injection. Java's ProcessBuilder isn't vulnerable because of a check in ProcessBuilder.start. NuProcess is missing that check. This vulnerability can only be exploited to inject command line arguments on Linux. Version 2.0.5 contains a patch. As a workaround, users of the library can sanitize command strings to remove NUL characters prior to passing them to NuProcess for execution.