یک آسیبپذیری از نوع Stored Cross-Site Scripting (XSS) در نرمافزار Hyve5 Leantime تا نسخه 3.9.8 شناسایی شده است. این نقص امنیتی به مهاجمانی که دارای دسترسیهای سطح پایین (Low-privileged) هستند اجازه میدهد تا کدهای مخرب HTML یا JavaScript را در محیط برنامه تزریق کنند.
جزئیات فنی آسیبپذیری
این مشکل در تابع getAllGrouped در فایل app/Domain/Tickets/Services/Tickets.php مربوط به کامپوننت Kanban Board ریشه دارد. در این بخش، مقادیر تحت کنترل کاربر مانند نام پروژهها، برچسبهای وضعیت (Status Labels)، انواع تیکتها و نام ویرایشگران، بدون sanitization مناسب و به صورت مستقیم در برچسبهایی که توسط کاربر نهایی رندر میشوند، قرار میگیرند.
سناریوی حمله
یک کاربر احراز هویت شده با سطح دسترسی پایین میتواند یک Payload مخرب را ذخیره کند. زمانی که کاربر دیگری (حتی با دسترسی بالاتر) اقدام به مشاهده بورد Kanban، لیست یا جدول مربوطه نماید، کد تزریق شده در مرورگر کاربر هدف اجرا میشود. این حمله به دلیل اجرا در یک Context امنیتی متفاوت، میتواند منجر به افشای اطلاعات یا تغییر در رفتار رابط کاربری شود.
راهکار رفع مشکل
توسعهدهندگان این نرمافزار با استفاده از تابع htmlspecialchars (با پارامترهای ENT_QUOTES و UTF-8) و همچنین بهکارگیری preg_replace برای پاکسازی شناسههایی که در هندلرهای onclick استفاده میشوند، این آسیبپذیری را برطرف کردهاند. به مدیران سیستم توصیه میشود سریعاً پچ مربوطه را اعمال کرده و نرمافزار خود را به آخرین نسخه بهروزرسانی کنند.