افزونه Smart Popup by Supsystic برای سیستم مدیریت محتوای وردپرس (WordPress)، با یک آسیبپذیری جدی از نوع تزریق قالب سمت سرور (Server-Side Template Injection یا SSTI) مواجه شده است. این نقص امنیتی به مهاجمانی که دسترسی مدیر (Administrator) دارند، اجازه میدهد تا با سوءاستفاده از فرآیند رندرینگ قالب، اطلاعات حساس سیستم را استخراج کنند.
جزئیات فنی و نحوه عملکرد
ریشه این آسیبپذیری در ترتیب نادرست اجرای فیلترهای امنیتی نهفته است. در نسخههای آسیبپذیر (قبل از نسخه 2.0.2)، فیلتر حذف جداکنندههای قالب (delimiter-stripping filter) پیش از مرحله رمزگشایی (Decoding) اجرا میشود. این یعنی یک مهاجم میتواند یک Payload کدگذاری شده را در بلوکهای متنی پاپآپ ذخیره کند؛ پس از آنکه فیلتر امنیتی اجرا شد، مرحله رمزگشایی مجدداً جداکنندههای قالب را بازسازی کرده و باعث میشود موتور قالب (Template Engine) کد مخرب را به عنوان دستورات معتبر در سمت سرور اجرا کند.
پیامدهای امنیتی
مهاجم از طریق این روش میتواند ثابتهای PHP (PHP constants) را بخواند. این امر منجر به نشت اطلاعات بسیار حساس از جمله موارد زیر میشود:
- مشخصات ورود به پایگاه داده (Database Credentials)
- کلیدهای احراز هویت (Authentication Keys)
- سایر اطلاعات حساس موجود در محیط سرور
لازم به ذکر است که برای بهرهبرداری از این آسیبپذیری، مهاجم باید از قبل یک حساب کاربری با سطح دسترسی مدیر (Authenticated Administrator) داشته باشد. بنابراین، تهدید اصلی بیشتر از سوی کاربران داخلی (Insider Threats) یا در صورت هک شدن حسابهای مدیریتی مطرح است.
راهکارهای مقابله و رفع مشکل
برای محافظت از سایت خود، اقدامات زیر توصیه میشود:
- بهروزرسانی فوری: افزونه Smart Popup را به نسخه 2.0.2 یا بالاتر ارتقا دهید.
- غیرفعالسازی: در صورتی که امکان بهروزرسانی فوری وجود ندارد، افزونه را غیرفعال یا حذف کنید تا مسیر اجرای موتور قالب مسدود شود.
- بازبینی دسترسیها: دسترسیهای مدیریتی وردپرس را محدود کرده و تنها به افراد مورد اعتماد واگذار کنید.