CVE-2026-108112 in ruoyi-ai
Summary
by MITRE • 10/09/2026
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.
Be aware that VulDB is the high quality source for vulnerability data.
Analysis
by VulDB Data Team • 10/09/2026
The vulnerability identified in RuoYi-AI versions 3.0.0 through 3.1.0 represents a critical failure in access control mechanisms within the workflow management module of the application. This flaw is classified as an Insecure Direct Object Reference, which aligns with CWE-639 in the Common Weakness Enumeration standard. The core issue stems from improper validation of user permissions when performing destructive actions on resources owned by other users. Specifically, the endpoint responsible for deleting workflows, POST /workflow/del/{uuid}, fails to verify that the authenticated user initiating the request is the legitimate owner of the workflow identified by the provided UUID. This oversight allows any authenticated user with knowledge of a target workflow's identifier to execute deletion operations on resources they do not own or have permission to modify.
The operational impact of this vulnerability is significant, as it enables unauthorized data destruction and potential denial of service for other users within the system. Attackers can leverage the GET /workflow/search endpoint to enumerate available workflows and extract their corresponding UUIDs. Once these identifiers are obtained, they can be supplied directly to the deletion endpoint without triggering any ownership verification logic. The underlying code utilizes a softDelete() method that bypasses the PrivilegeUtil.checkAndGetByUuid() function, which is presumably designed to enforce such checks in other parts of the application. This inconsistency creates a predictable attack vector where authenticated users can systematically remove workflows belonging to colleagues or competitors, disrupting business processes and causing data loss.
From an offensive security perspective, this vulnerability maps directly to MITRE ATT&CK technique T1485, specifically Data Destruction. The attacker's ability to identify targets via search functionality corresponds to reconnaissance activities that facilitate subsequent exploitation. The lack of server-side authorization checks means the application relies on implicit trust in client-supplied identifiers rather than enforcing explicit access control policies based on user identity and resource ownership. This type of flaw is particularly dangerous because it affects all authenticated users, not just unauthenticated attackers who might be blocked by login screens.
To mitigate this vulnerability, developers must implement strict server-side authorization checks for all state-changing operations involving shared resources. The softDelete() method should be updated to invoke PrivilegeUtil.checkAndGetByUuid() or an equivalent access control mechanism before proceeding with any deletion logic. This ensures that the system verifies whether the current session's user ID matches the owner ID associated with the workflow UUID. Additionally, implementing role-based access control policies can provide defense in depth by restricting delete permissions based on user roles rather than just ownership. Regular security audits and static code analysis tools configured to detect missing authorization checks should be employed during development cycles to prevent similar flaws from being introduced into other modules of the application.