VYPR
Unrated severityNVD Advisory· Published Jun 17, 2026· Updated Jun 17, 2026

CVE-2026-36418

CVE-2026-36418

Description

JimuReport versions 2.3.4 and below are vulnerable to remote code execution due to improper handling of Aviator expressions. The /jmreport/executeSelectApi endpoint passes user-supplied input directly to the Aviator expression engine without adequate validation allowing attackers to execute arbitrary code.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Affected products

1

Patches

Vulnerability mechanics

Root cause

"User-supplied input in the `paramValue` parameter is passed directly to the Aviator expression engine without validation, enabling arbitrary expression injection."

Attack vector

An attacker sends a crafted POST request to `/jmreport/executeSelectApi` with a `paramArray` JSON containing a `paramValue` that starts with `=`. The backend passes this value directly to the Aviator expression engine without adequate validation, allowing arbitrary expression execution [ref_id=1]. The researcher demonstrates two payloads: one using JNDI injection (`InitialContext.doLookup`) and another leveraging the hutool-core library's `RuntimeUtil.execForStr` to execute system commands such as `calc` [ref_id=1].

Affected code

The vulnerability resides in the `/jmreport/executeSelectApi` endpoint of JimuReport, specifically in `org.jeecg.modules.jmreport.desreport.b.a`. The `paramValue` parameter is extracted from user-supplied JSON, passed through `ExpressUtil.a()`, and then compiled and executed by the Aviator expression engine via `exp.execute()` [ref_id=1].

What the fix does

The advisory does not include a published patch. The root cause is that the `ExpressUtil.a()` method compiles and executes user-controlled input as an Aviator expression when the input starts with `=`, with no sanitization or allowlist of permitted functions [ref_id=1]. A proper fix would require validating or restricting the expressions that can be passed to the Aviator engine, or removing the ability to inject arbitrary expressions entirely.

Preconditions

  • networkThe attacker must have network access to the `/jmreport/executeSelectApi` endpoint.
  • inputThe attacker must supply a `paramValue` that begins with `=` to satisfy the expression-triggering condition.

Generated on Jun 18, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

1

News mentions

0

No linked articles in our index yet.