Miggo Logo

CVE-2025-26074:
Conductor vulnerable to OS command injection through unrestricted access to Java classes

9.8

CVSS Score
3.1

Basic Information

EPSS Score
0.36875%
Published
6/30/2025
Updated
6/30/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.conductoross:conductor-coremaven< 3.21.133.21.13

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability is an OS command injection weakness in the Conductor workflow engine, stemming from the insecure use of the Nashorn Javascript engine. The core issue is that the script engine was being initialized without any restrictions, which provided any executed Javascript code with full access to the Java Virtual Machine's (JVM) class library. An attacker could exploit this by crafting a Javascript payload that instantiates and uses powerful Java classes, such as java.lang.Runtime, to execute arbitrary commands on the host operating system.

The security patch rectifies this by consistently applying the --no-java flag during the instantiation of the Nashorn ScriptEngine. This flag acts as a sandbox, effectively preventing the script from accessing any Java classes and thereby neutralizing the command injection vector.

The analysis of the provided commit e9816501df1e364a3d39d7fe37d6e167c40eaa1b pinpointed several functions where these insecure script engines were being created:

  1. com.netflix.conductor.core.events.ScriptEvaluator.eval: This is the most critical function, as it relies on a shared script engine (configured in initEngine) to evaluate scripts for event handlers. This represents the primary and most likely path for exploitation.

  2. com.netflix.conductor.sdk.workflow.def.tasks.Javascript.validate and test: These methods, found in two separate SDK modules, also created unsandboxed script engines for the purpose of validating and testing Javascript-based workflow tasks. Although these might be less common exploitation scenarios compared to event handlers, they still posed a significant security risk.

The patch comprehensively addresses the vulnerability by ensuring that every instance where the Nashorn engine is created is now properly sandboxed with the --no-java flag.

Vulnerable functions

com.netflix.conductor.core.events.ScriptEvaluator.eval
core/src/main/java/com/netflix/conductor/core/events/ScriptEvaluator.java
The `eval` function is responsible for executing Javascript code. It uses a shared `ScriptEngine` that was initialized without proper sandboxing. The `initEngine` method, called by `eval`, was modified by the patch to include the `--no-java` flag, which prevents scripts from accessing Java classes. Before the patch, a malicious script could leverage this access to execute arbitrary OS commands.
com.netflix.conductor.sdk.workflow.def.tasks.Javascript.validate
conductor-clients/java/conductor-java-sdk/sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java
The `validate` method in the `Javascript` task class creates a Nashorn script engine to validate a script. This engine was created without the `--no-java` flag, allowing a malicious script to execute arbitrary code during the validation process.
com.netflix.conductor.sdk.workflow.def.tasks.Javascript.test
conductor-clients/java/conductor-java-sdk/sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java
The `test` method in the `Javascript` task class creates a Nashorn script engine to test a script. This engine was created without the `--no-java` flag, allowing a malicious script to execute arbitrary code during testing.
com.netflix.conductor.sdk.workflow.def.tasks.Javascript.validate
java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java
This `validate` method is a duplicate of the one in the other SDK module and has the same vulnerability. It creates a Nashorn script engine without the `--no-java` flag, allowing for potential code execution during script validation.
com.netflix.conductor.sdk.workflow.def.tasks.Javascript.test
java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java
This `test` method is a duplicate of the one in the other SDK module and has the same vulnerability. It creates a Nashorn script engine without the `--no-java` flag, allowing for potential code execution during script testing.

WAF Protection Rules

WAF Rule

Ork*s *on*u*tor v*.**.** *llows r*mot* *tt**k*rs to *x**ut* *r*itr*ry OS *omm*n*s t*rou** unr*stri*t** ****ss to J*v* *l*ss*s.

Reasoning

T** vuln*r**ility is *n OS *omm*n* inj**tion w**kn*ss in t** *on*u*tor work*low *n*in*, st*mmin* *rom t** ins**ur* us* o* t** N*s*orn J*v*s*ript *n*in*. T** *or* issu* is t**t t** s*ript *n*in* w*s **in* initi*liz** wit*out *ny r*stri*tions, w*i** pr