Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege ruoyi-ai user
-
ExploitEnumerate victim UUIDs via GET /workflow/search
-
ExecutionPOST /workflow/del/{uuid} bypassing ownership check
-
ImpactDelete 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
A vulnerability was found in ageerle ruoyi-ai up to 2.0.1 and classified as critical. Rated medium severity (CVSS 6.9),
A vulnerability classified as critical has been found in ageerle ruoyi-ai up to 2.0.0. Rated medium severity (CVSS 6.9),
Authenticated non-admin users of ruoyi-ai 3.0.0 through 3.1.0 can enumerate other users' enabled private workflows throu
Unrestricted file upload in ruoyi-ai 2.0.0 allows remote authenticated attackers to upload arbitrary files via the speec
EUVD-2026-95885
GHSA-h7qx-c58p-3mff
NVD
CVE.org
EPSS
VulDB
Exploit-DB