یک آسیبپذیری امنیتی از نوع CSRF (Cross-Site Request Forgery) با شدت بالا که منجر به حملات Stored XSS میشود، در نسخه 3.9 و همهی نسخههای قبل از افزونه وردپرسی به نامReal-Time Find and Replace یافت شده است. این افزونه که برای کاربران امکان جایگذاری محتوای کد و متن را به طور موقت و بدون نیاز به مراجعه به سورس کد اصلی سایت فراهم میکند، بر روی بیش از 100 هزار وب سایت وردپرسی نصب است. استفاده از این افزونه به دلیل عملکرد محدود آن بسیار آسان است.
1. تزریق کد مخرب
با توجه به عملکرد افزونه، مهاجم میتواند با بهرهبرداری از این آسیبپذیری هر نوع کد مخربی را جایگزین سورس کد اصلی وبسایت کند. به طور دقیقتر افزونه Real-Time Find and Replace هر محتوای HTMLی در وبسایت وردپرسی را با محتوای HTML جدید جایگزین میکند. آسیبپذیری از عدم ارزیابی مبدا درخواست در تابع far_options_pageکه هسته اصلی عملکرد افزونه را با افزودن قوانین find and replace تشکیل میدهد، ناشی میشود. همان طور که در شکل شماره 1 مشاهده میشود، مهاجم با استفاده از این آسیبپذیری میتواند یک تگ HTML مانند را با جاوا اسکریپت مخرب جایگزین کند. از آنجایی که تقریبا همهی صفحات سایت با تگ شروع میشوند، اجرای کد جاوا اسکریپت مخرب، تاثیر گستردهای خواهد داشت. این کد مخرب میتواند برای تزریق یک حساب کاربری آدمین، سرقت کوکیهای جلسات یا هدایت و انتقال کاربران به سایتهای مخرب مورد بهرهبرداری قرار بگیرد.
شکل شماره 1: مثالی از جایگزینی تگ با کد جاوا اسکریپت
2. رفع آسیبپذیری در نسخه جدید
آسیبپذیری در 22 آوریل کشف و به توسعهدهندگان افزونه Real-Time Find and Replace گزارش شد. پس از مدتی نسخه جدید افزونه 4.0.2 همراه با رفع آسیبپذیری منتشر شد؛ با این حال تنها 27 هزار وبسایت به بهروزرسانی افرونه اقدام کردند و باقی آنها همچنان آسیبپذیر هستند. به همهی کاربران این افزونه توصیه میشود تا هر چه سریعتر افزونه را به نسخه 4.0.2 بهروزرسانی کنند.
منبع:
- 49