Skip to main content

ruoyi-vue-pro EUVDEUVD-2026-86405

| CVE-2026-97323 LOW
Path Traversal (CWE-22)
2026-09-24 cna@vuldb.com GHSA-2p8r-gv6f-rr5h
2.1
CVSS 4.0 · Vendor: vuldb
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged user
  2. Delivery
    Access WeChat MP material upload
  3. Exploit
    Submit multipart filename with ../ traversal
  4. Execution
    getOriginalFilename returns unsanitized path
  5. Persist
    File written outside intended directory
  6. Impact
    Overwrite/plant file for further impact

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account (PR:L) on a ruoyi-vue-pro/yudao instance with access to the yudao-module-mp WeChat MP material upload feature; the attacker must be able to submit a multipart file whose original filename carries '../' traversal sequences that reach getOriginalFilename() in MpMaterialServiceImpl. Limiting factors: valid credentials and access to the MP material-upload component are needed (not unauthenticated), the WeChat MP module must be deployed/enabled, and realistic impact depends on filesystem write permissions of the application service account and whether traversal reaches a sensitive/web-served directory. No user interaction beyond the attacker's own request is required, and no vendor patch is currently available.

Impact

This is a genuinely low-priority issue on raw signals but warrants attention for internet-exposed Chinese-market deployments. The only CVSS provided is a VulDB CVSS 4.0 base of 2.1 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L) with E:P (proof-of-concept exploit maturity), indicating remote but authenticated (PR:L) exploitation with limited impact across confidentiality/integrity/availability. No EPSS score and no CISA KEV entry are provided, so there is no evidence of active or widespread exploitation - only a publicly disclosed PoC. VulDB's 2.1 rating is conservative for a path-traversal flaw in the getOriginalFilename() handling of an upload path: unsanitized '../' sequences in a multipart filename typically enable a file WRITE to an attacker-chosen location, which can be materially worse (potential webshell/overwrite → integrity or code execution) than the VC:L/VI:L/VA:L rating implies; this is a notable disagreement worth verifying. Countervailing limiter: exploitation requires an authenticated account (PR:L) and access to the WeChat MP material-upload feature, and no vendor fix exists because the vendor did not respond to disclosure. Net: low nominal severity, but the traversal-to-file-write nature plus a public PoC and absent patch means exposed instances should be treated above the 2.1 headline.

Exploit ScenarioDerived

An authenticated low-privileged user of a ruoyi-vue-pro/yudao instance uploads a WeChat MP material file whose original filename contains directory-traversal sequences (e.g. '../../'), so getOriginalFilename() returns an attacker-controlled path and the file is written outside the intended upload directory. A public PoC has been disclosed, lowering the barrier to reuse; depending on writable paths, this can enable overwriting application files or planting a webshell for follow-on code execution. Exploitation is remote (AV:N) with low complexity but requires a valid account (PR:L).

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 24, 2026

Authenticated path traversal in the ruoyi-vue-pro (Yudao) WeChat MP material-upload component lets a low-privileged user write files outside the intended upload directory by embedding '../' sequences in a multipart filename passed to getOriginalFilename() in MpMaterialServiceImpl. Versions up to and including the 2026.08 release are affected whenever the yudao-module-mp module is deployed; the CVSS 4.0 base score is 2.1 (our independent assessment rates it CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N, i.e. remote but requiring a valid account, with limited integrity impact only). Publicly available exploit code exists per the disclosing researcher, and the vendor was contacted but did not respond, so no vendor-released patch is identified at time of analysis.

RemediationAI

No vendor-released patch is identified at time of analysis, and the vendor did not respond to the disclosure, so remediation must be compensating-control driven. The most direct fix is a code-level one: in MpMaterialServiceImpl.getOriginalFilename() (or immediately before the path is used), strip any directory components and reject filenames containing '../', '..\\', absolute paths, null bytes, or URL-encoded variants, ideally by applying something like FilenameUtils.getName() plus a strict extension allowlist and by resolving the final path with Path.normalize()/toRealPath() and verifying it stays inside the configured upload root - this changes behavior only for malformed filenames and is safe to deploy. If code changes are not possible, remove or disable the WeChat MP material-upload endpoints (or restrict them to a trusted administrative role) until a fix is available; the trade-off is loss of self-service material management for ordinary MP operators. Additionally, run the application service account with least-privilege filesystem permissions, keep the upload directory outside the web root and off any path that can reach configuration, JSP/template, or startup-hook locations, and deploy WAF or reverse-proxy rules that reject multipart filenames containing traversal sequences - each of these reduces exploitability but none fully substitutes for the sanitization fix, and WAF filename filtering carries a small risk of false positives on legitimate unicode or long filenames. Monitor https://vuldb.com/vuln/409331 for an upstream commit or tagged release before assuming a permanent fix exists.

Affected VersionsENISA

ruoyi-vue-pro 2026.08

Affected Packages

euvd ruoyi_vue_pro no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a classic CWE-22 path traversal in the Java/Spring-based ruoyi-vue-pro (Yudao) application framework, specifically in yudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/service/material/MpMaterialServiceImpl.java in the function getOriginalFilename() of the File Upload component. The WeChat MP (official-account) module handles permanent material uploads, and instead of canonicalizing the client-controlled multipart filename before using it to build a destination path, the code trusts the string returned from getOriginalFilename(), so sequences such as '../' or encoded equivalents can escape the intended directory when the file is persisted or referenced. The relevant weakness class is path traversal (CWE-22), a relative-path injection into filesystem operations rather than a deserialization, injection, or memory-safety issue. Because the traversal depends on the write permissions of the service account and on whether the resolved path lands in a web-served or otherwise sensitive directory, real-world impact is bounded and largely integrity-oriented; no CPE entries were supplied with the advisory, and the affected artifact set is the ruoyi-vue-pro repositories mirroring YunaiV/zhijiantianya up to the 2026.08 tag with the MP module enabled.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vuldb) PRIMARY 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 4.3 MEDIUM

Remote and low-complexity but needs an authenticated account (PR:L); primary impact is a limited file write (I:L), with C/A not clearly affected; I:H arguable if traversal enables webshell/overwrite.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (vuldb).

CVSS VectorVendor: vuldb

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A vulnerability was determined in YunaiV/zhijiantianya ruoyi-vue-pro up to 2026.08. This impacts the function getOriginalFilename of the file yudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/service/material/MpMaterialServiceImpl.java of the component File Upload. Executing a manipulation can lead to path traversal. It is possible to launch the attack remotely. The exploit has been publicly disclosed and may be utilized. The vendor was contacted early about this disclosure but did not respond in any way.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Medium
popular open-source Chinese Spring Boot rapid-dev platform, common in China
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy