در نسخههای 3.0.0 تا 3.1.0 نرمافزار ruoyi-ai، یک آسیبپذیری از نوع عدم احراز صلاحیت (Missing Authorization) شناسایی شده است که به کاربران احراز هویت شده با سطح دسترسی پایین اجازه میدهد تا ورکفلوهای (Workflows) متعلق به سایر کاربران را حذف کنند.
جزئیات فنی آسیبپذیری
این نقص امنیتی که تحت طبقهبندی CWE-862 قرار میگیرد، به دلیل نبود بررسیهای لازم در سطح دسترسی رخ داده است. در حالت عادی، سیستم باید مالکیت یک منبع را پیش از انجام عملیات حذف بررسی کند، اما در این نرمافزار، متد softDelete() در کلاس WorkflowService، فراخوانی PrivilegeUtil.checkAndGetByUuid() را نادیده میگیرد.
یک عامل تهدید (Threat Actor) میتواند با طی کردن مراحل زیر از این آسیبپذیری بهرهبرداری کند:
- ابتدا با ارسال درخواست
GET /workflow/search، شناسههای UUID ورکفلوهای سایر کاربران را استخراج میکند. - سپس با ارسال درخواست
POST /workflow/del/{uuid}و جایگذاری UUIDهای بهدست آمده، ورکفلوهای هدف را حذف میکند.
تحلیل اثرات و ریسک
این آسیبپذیری بر روی Integrity (یکپارچگی) و Availability (در دسترس بودن) دادهها تأثیر میگذارد، زیرا منجر به حذف غیرمجاز منابع در محیطهای چندکاربره (Multi-tenant) میشود. با این حال، این نقص هیچ تأثیری بر روی محرمانگی (Confidentiality) دادهها ندارد.
در حال حاضر کدهای اکسپلویت (Exploit) برای این آسیبپذیری به صورت عمومی منتشر شده است، هرچند گزارشی مبنی بر بهرهبرداری گسترده در سطح جهانی (مانند ثبت در لیست KEV سازمان CISA) وجود ندارد. با توجه به اینکه دسترسی به شبکه و احراز هویت اولیه برای اجرای حمله لازم است، شدت این آسیبپذیری در سطح Medium ارزیابی شده است.