Skip to main content

ruoyi-ai CVE-2026-108112

| EUVDEUVD-2026-95885 MEDIUM
Missing Authorization (CWE-862)
2026-10-09 VulnCheck GHSA-h7qx-c58p-3mff
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege ruoyi-ai user
  2. Exploit
    Enumerate victim UUIDs via GET /workflow/search
  3. Execution
    POST /workflow/del/{uuid} bypassing ownership check
  4. Impact
    Delete other users' workflows (integrity/availability loss)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

Requires a valid authenticated ruoyi-ai account at any privilege level (PR:L) - exploitation is not possible unauthenticated. No special configuration or non-default feature is needed: the flaw is in the default code path because WorkflowService.softDelete() omits the PrivilegeUtil.checkAndGetByUuid() ownership check on the POST /workflow/del/{uuid} endpoint. The attacker must first obtain target workflow UUIDs, which the GET /workflow/search endpoint readily exposes. Limiting factors: only meaningful on multi-user/multi-tenant deployments (a single-user instance has nothing to cross-delete), requires an authenticated session, and impact is confined to deletion of workflow objects (integrity/availability) with no data disclosure.

Impact

This is a moderate-severity broken-access-control issue (CWE-862) best treated as a medium priority rather than an urgent one. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network-reachable, low-complexity exploitation requiring only low-privilege authentication (PR:L), with no user interaction - consistent with the description of any authenticated user deleting other users' workflows. Impact is deliberately scoped low (VC:N/VI:L/VA:L): no confidentiality loss, only partial integrity/availability damage to other tenants' workflow data, which is why the base score is 5.3 rather than critical. Publicly available exploit code exists (a HackMD writeup and VulnCheck advisory), raising practical exploitability, but the CVE is NOT in CISA KEV and no EPSS score was provided, so there is no evidence of active or widespread exploitation - the POC signal and the (absent) active-exploitation signal must not be conflated. Net: a credible, easy-to-abuse authorization gap against authenticated multi-user deployments, but bounded impact and no confidentiality exposure keep it below top-tier urgency.

Exploit ScenarioDerived

A legitimate but malicious (or compromised) low-privilege user of a shared ruoyi-ai instance calls GET /workflow/search to enumerate other users' workflow UUIDs, then sends POST /workflow/del/{uuid} for each. Because softDelete() never invokes PrivilegeUtil.checkAndGetByUuid(), the server deletes workflows the attacker does not own. A public proof-of-concept exists, and the low attack complexity (AC:L, no UI) makes mass deletion trivial to script.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 09, 2026

Authenticated users of ruoyi-ai 3.0.0 through 3.1.0 can delete workflows owned by other accounts by issuing POST /workflow/del/{uuid} with a UUID harvested from the GET /workflow/search listing, because WorkflowService.softDelete() never calls PrivilegeUtil.checkAndGetByUuid() to confirm ownership before removing the record. The bug is a classic CWE-862 missing-authorization flaw: any valid account at any privilege level (PR:L) is enough, no user interaction or non-default configuration is required, and publicly available exploit code exists, although there is no CISA KEV confirmation of active exploitation and the impact is confined to integrity and availability of workflow objects on multi-user or multi-tenant deployments. Independent assessment rates this as a moderate-severity broken-access-control issue rather than an urgent one, since a single-user instance has nothing to cross-delete and no data disclosure is possible.

RemediationAI

No vendor-released patch identified at time of analysis: version 3.1.0 still contains the unchecked softDelete() path, and the only references supplied are to the vulnerable source lines (https://github.com/ageerle/ruoyi-ai/blob/v3.1.0/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/service/WorkflowService.java#L204-L207 and https://github.com/ageerle/ruoyi-ai/blob/v3.1.0/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/controller/WorkflowController.java#L55-L59) plus the VulnCheck advisory at https://www.vulncheck.com/advisories/ruoyi-ai-3.0.0-through-3.1.0-missing-authorization-via-workflow-delete-endpoint, so track the upstream repository for a fix commit or tagged release. The most durable fix is to add the missing PrivilegeUtil.checkAndGetByUuid() ownership check inside softDelete() (or reject the request at the controller when the caller is not the workflow owner), which costs only a single lookup per delete and has no functional side effects; deploying that change before any upstream release is feasible because it is a small, self-contained patch. As compensating controls, block or restrict POST /workflow/del/{uuid} at the reverse proxy, API gateway, or WAF so that only trusted administrative sessions can reach it, accepting that legitimate owners then lose self-service deletion; alternatively filter GET /workflow/search so it only returns workflows belonging to the calling user, which reduces UUID harvesting but does not by itself stop an attacker who already knows a target UUID; and restrict account provisioning on multi-tenant installations while the flaw is open. Because the deletion is logical, monitor application logs for /workflow/del requests originating from sessions other than the workflow owner's and re-enable deleted workflows from database backups or by clearing the deletion flag, treating the impact as recoverable rather than permanent data loss.

Affected VersionsENISA

ruoyi-ai 3.0.0 ≤3.1.0

Affected Packages

euvd ruoyi_ai 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

ruoyi-ai (ageerle/ruoyi-ai) is a Java/Spring Boot AI workflow platform built on the RuoYi framework, and the vulnerable code lives in its ruoyi-aiflow module. The controller mapping at WorkflowController.java lines 55-59 exposes POST /workflow/del/{uuid}, which forwards directly into WorkflowService.softDelete() (WorkflowService.java lines 204-207); that routine performs the logical deletion and updates the deletion flag without invoking PrivilegeUtil.checkAndGetByUuid(), the ownership helper used on other workflow operations. The root cause is therefore CWE-862 (Missing Authorization) in the form of broken object-level access control: the UUID is treated as if possession implied entitlement, yet GET /workflow/search enumerates workflow identifiers, so the identifier is not a secret and object-level authorization cannot be assumed from it. The behaviour corresponds to CPE cpe:2.3:a:ageerle:ruoyi-ai (wildcarded version range), and it is consistent with the vendor-supplied CVSS 4.0 vector CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N (5.3) and the independent CVSS 3.1 equivalent AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L, both of which describe network-reachable, low-privilege, integrity/availability-only impact. Because the operation is a soft delete, the affected row is flagged rather than physically purged, which is a mitigating factor for availability and allows recovery from database backups or direct record repair.

Know when Ruoyi Ai 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 (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.4 MEDIUM

Network endpoint reachable by any authenticated low-privilege user (PR:L, AV:N, AC:L, no UI); deletion of other users' workflows harms integrity and availability only (I:L/A:L), with no confidentiality impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

ruoyi-ai 3.0.0 through 3.1.0 contains a missing authorization vulnerability that allows authenticated users to delete other users' workflows via POST /workflow/del/{uuid}. Attackers can obtain workflow UUIDs from GET /workflow/search and supply them because softDelete() skips the PrivilegeUtil.checkAndGetByUuid() ownership check, removing owners' workflows.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche open-source AI/workflow project, limited enterprise deployment footprint
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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