External risk intelligence

RuoYi-Vue-Plus Snail Job Allows Arbitrary File Read Write

CVE advisorySeverity: CRITICAL (CVSS 9.4)

CVE-2025-66916

RuoYi-Vue-Plus is a widely used web application framework. The vulnerability exists within an interface path (/snail-job/workflow/check-node-expression) that is part of the application's web-facing API. As this component is integrated into the web application's publicly accessible services, it is commonly exposed to the internet in standard deployments.

Code Injection

Dromara Ruoyi Vue Plus

5.5.1 and earlier

Halo Surface Signal: 4 out of 5 — likely to be public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory concerns a critical vulnerability in the RuoYi-Vue-Plus component, which could allow unauthorized access to execute code and manipulate files on affected systems. The issue stems from a failure to properly validate user input within a specific interface, potentially enabling malicious actors to read or write files. At a high level, this could expose sensitive data or disrupt operations if the affected component is in use.

  • Code execution and file manipulation risk.
  • Confirms exposure in web-facing API services.
  • Assess relevance and potential system impact.

Attack Path

How an attacker could exploit the issue

An attacker can reach an interface in the snailjob component that processes QLExpress expressions. Because this component doesn't properly check user-provided input, an attacker can exploit this by using the File class to read or write files on the system.

  • No authentication required for access.
  • Triggered by sending a malicious QLExpress expression.
  • Allows arbitrary file read/write.

Live Threat

Current exploitation, exposure, and threat context

When supported by the advisory, this vulnerability could allow an unauthenticated attacker to read or write arbitrary files on the system by sending a specially crafted request to the `/snail-job/workflow/check-node-expression` interface. This could lead to the exposure or modification of system and user data.

  • System files could be accessed.
  • Unfiltered input allows arbitrary file operations.
  • Unauthorized data access or modification.

Operational Fix

Recommended remediation, mitigation, and detection steps

The snailjob component within RuoYi-Vue-Plus, specifically the `/snail-job/workflow/check-node-expression` interface, is susceptible to arbitrary file read/write due to insufficient input filtering for QLExpress expressions. Application owners and platform teams are likely responsible for managing this component. The initial practical step involves identifying all instances of RuoYi-Vue-Plus, assessing their exposure and criticality, and then coordinating remediation efforts based on these findings.

  • Application or platform teams own the issue.
  • Verify affected systems and their exposure.
  • Plan remediation based on risk assessment.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is RuoYi-Vue-Plus?

RuoYi-Vue-Plus is a Java-based web application framework used to build enterprise-level management systems. It typically includes various modules and plugins to streamline development, such as the snailjob component mentioned in this advisory, which handles specific workflow and background tasks.

What does CWE-94 mean for CVE-2025-66916?

CWE-94 refers to improper control of generation of code. In this CVE, the vulnerability occurs because the application processes user-provided expressions without adequate filtering. This allows an attacker to misuse the system's ability to execute code, specifically leveraging the File class to perform unauthorized read and write operations on the server.

How is this vulnerability triggered?

An attacker triggers the vulnerability by sending a specially crafted request to the /snail-job/workflow/check-node-expression interface. Because this endpoint does not validate the input, the system executes the malicious expression provided by the user. Simply visiting the application or browsing general pages without hitting this specific workflow interface will not trigger the flaw.

Why should I care if my system is internet-facing?

According to Halo Surface Signal, this vulnerability is particularly relevant because the affected interface is part of a web-facing API. Since the application is commonly exposed to the internet in standard deployments and does not require authentication to access the vulnerable path, an external attacker could attempt to manipulate files without needing prior system access.

Is there a first step I can take to respond?

Start by identifying all active instances of RuoYi-Vue-Plus within your environment to determine which systems are running version 5.5.1 or earlier. Once you have an inventory, assess the exposure of these instances, especially those connected to networks, to prioritize your remediation planning and minimize risk.