یک آسیبپذیری از نوع Stored Cross-Site Scripting (XSS) در سیستم مدیریت محتوای REDAXO (نسخه 5.21.1 و قدیمیتر) شناسایی شده است. این نقص امنیتی در افزونه mediapool و بهطور مشخص در فایل sync.php قرار دارد.
جزئیات فنی آسیبپذیری
مشکل اصلی در صفحه همگامسازی (Sync Page) این سیستم است که نام فایلهای موجود در دایرکتوری /media را مستقیماً در HTML رندر میکند، بدون اینکه از تابع rex_escape() (یا معادل htmlspecialchars) برای پاکسازی دادهها استفاده کند. در نتیجه، هر فایلی که نام آن حاوی متاکاراکترهای HTML باشد، میتواند کدهای جاوا اسکریپت (JavaScript) را در مرورگر کاربرانی که دسترسی media[sync] دارند، اجرا کند.
سناریوی حمله و پیشنیازها
برای بهرهبرداری از این آسیبپذیری، عامل تهدید (Threat Actor) باید ابتدا بتواند فایلی با نام مخرب در دایرکتوری /media قرار دهد. این دسترسی میتواند از طریق روشهای زیر حاصل شود:
- دسترسی مستقیم به سیستم فایل (Filesystem) سرور.
- استفاده از قابلیت Restore بکآپ در سطح Administrator.
پس از قرارگیری فایل، هر کاربر پنل مدیریت (از جمله ادمینها) که صفحه Sync را باز کند، مورد حمله قرار گرفته و کد مخرب در مرورگر او اجرا میشود. این موضوع میتواند منجر به Session Hijacking، سرقت کوکیهای نشست و در نهایت تصاحب کامل CMS شود.
راهکار اصلاحی
برای رفع این مشکل، توسعهدهندگان باید تمامی متغیرهای مربوط به نام فایل را پیش از درج در HTML، از طریق تابع rex_escape() پاکسازی کنند تا از اجرای کدهای غیرمجاز جلوگیری شود.