{"id":"CVE-2026-108112","title":"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}","summary":"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…","severity":"medium","cvss":5.4,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","cwe":["CWE-862"],"published":"2026-10-09","updated":"2026-10-14","sourceUpdated":"2026-10-14T16:17:31.913","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-108112","references":[{"url":"https://github.com/ageerle/ruoyi-ai","label":"disclosure@vulncheck.com"},{"url":"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","label":"disclosure@vulncheck.com"},{"url":"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","label":"disclosure@vulncheck.com"},{"url":"https://hackmd.io/@haind/cve-2026-108111-108112-ruoyi-ai-workflow-authz","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/ruoyi-ai-3.0.0-through-3.1.0-missing-authorization-via-workflow-delete-endpoint","label":"disclosure@vulncheck.com"},{"url":"https://hackmd.io/@haind/SJnkeEUoMx","label":"disclosure@vulncheck.com"}],"tags":["nvd","cve.org","exploit-available"],"epss":0.00219,"epssPercentile":0.12261,"ingestedAt":"2026-10-09T17:04:42.811Z","vendor":"ageerle","product":"ruoyi-ai","affected":["ruoyi-ai >= 3.0.0 <= 3.1.0"],"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"no","technicalImpact":"partial","timestamp":"2026-10-14T15:52:06.094053Z"},"slug":"CVE-2026-108112","body":"## Overview\n\nruoyi-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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":42,"depthScoreParts":{"impact":29.7,"likelihood":0,"exploitation":12,"ransomware":0},"changes":[{"seq":221366,"id":"CVE-2026-108112","ts":1792031149915,"field":"exploit_available","old":"false","new":"true"}]}