Skip to content

NuProcess vulnerable to command-line injection through insertion of NUL character(s)

High severity GitHub Reviewed Published Sep 25, 2022 in brettwooldridge/NuProcess • Updated Jan 29, 2023

Package

maven com.zaxxer:nuprocess (Maven)

Affected versions

>= 1.2.0, < 2.0.5

Patched versions

2.0.5

Description

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

Published by the National Vulnerability Database Sep 26, 2022
Published to the GitHub Advisory Database Sep 30, 2022
Reviewed Sep 30, 2022
Last updated Jan 29, 2023

Severity

High
8.4
/ 10

CVSS base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2022-39243

GHSA ID

GHSA-cxgf-v2p8-7ph7
Checking history
See something to contribute? Suggest improvements for this vulnerability.