یک آسیبپذیری از نوع Stored Cross-Site Scripting (XSS) در نسخههای 5.x سیستم مدیریت محتوای REDAXO (تا نسخه 5.21.1) شناسایی شده است. این نقص امنیتی در افزونه Media Manager رخ میدهد و میتواند منجر به سرقت نشست (Session Hijacking) و تصاحب کامل حسابهای مدیران سیستم شود.
جزئیات فنی آسیبپذیری
این مشکل زمانی رخ میدهد که یک مدیر سیستم سعی کند فایلی را حذف کند که توسط یک اثر (Effect) در Media Manager مورد استفاده قرار گرفته است. در این حالت، پیام هشدار نمایش داده شده در پنل مدیریت، فیلد نام نوع (Type Name) را بدون اعمال HTML Escaping رندر میکند.
یک مهاجم با دسترسی به افزونه Media Manager میتواند یک Payload مخرب را در نام نوع ذخیره کند. سپس، هر مدیر دیگری که سعی در حذف فایل مرتبط با آن نوع داشته باشد، کد مخرب در مرورگر او اجرا خواهد شد.
تحلیل مسیر حمله
- نقطه ضعف: تابع
mediaIsInUse()در فایلmedia_manager.phpرشتههای ورودی را بدون اعتبارسنجی کافی پردازش کرده و به صورت Raw HTML نمایش میدهد. - شکاف اعتبارسنجی: در فایل
types.php، اعتبارسنجی تنها برخی کاراکترها مانند {، / و را مسدود میکند، اما کاراکترهای حیاتی برای تزریق HTML مانند <، >، ” و ‘ مجاز هستند. - نتیجه: اجرای کد JavaScript در نشست احراز هویت شده مدیر قربانی، که امکان سرقت توکنهای CSRF و کوکیهای حساس را فراهم میکند.
راهکار اصلاحی
برای رفع این آسیبپذیری، توسعهدهندگان باید از تابع rex_escape() پیش از الحاق نام نوع به تگهای HTML استفاده کنند تا از اجرای کدهای غیرمجاز جلوگیری شود.