پلاگین OptinMonster حاوی یک نقص امنیتی بسیار خطرناک است که دسترسی بدون صلاحیت API را ممکن کرده و منجر به افشای اطلاعات بسیار حساس از بیش از یک میلیون سایت WordPress میشود.
این آسیبپذیری با شناسه CVE-2021-39341 شناخته شده است و توسط یک محقق در تاریخ ۲۸ سپتامبر ۲۰۲۱ معرفی و در تاریخ ۷ اکتبر ۲۰۲۱ از سوی شرکت وردپرس برای آن وصله امنیتی توزیع شد. تمام کاربران این پلاگین میبایست برای جلوگیری از آلوده شدن و ایراد صدمات بیشتر این وصله امنیتی را نصب کنند.
مشکل API
OptinMonster یکی از محبوبترین پلاگینهای مورد استفاده در وردپرس است که فرمهای ثبت نام زیبایی را ایجاد میکند تا به صاحبان سایت کمک کند بازدیدکنندگان را به مشتری و عضو سایت تبدیل کنند. این خود یک ابزار پولسازی و جذب مخاطب است که به لطف استفاده آسان و امکانات فراوان آن، در تقریبا یک میلیون سایت به کار میرود.
همانطور که توصیف شده است، OptinMonster، بر نقاط پایانی API تکیه دارد که امکان یکپارچگی بیمثال و فرآیند طراحی منظم و ساده شدهای را فراهم میکند. با این حال، پیاده سازی این نقاط پایانی همیشه امن نیست و مهمترین مثال آن مربوط به نقاط پایانی /wp-json/omapp/v1/support است. این نقاط پایانی میتوانند اطلاعاتی نظیر مسیر کامل سایت بر روی سرور، کلیدهای API به کار رفته برای درخواستها در سایت و موارد دیگر را فاش کنند.
مهاجمی که کلید API را در دست دارد میتواند در حسابهای OptinMonster تغییراتی ایجاد کند یا حتی قطعههای مخرب جاوا اسکریپت را در سایت قرار دهد. سایت، این کد را هر زمان که یک عنصر OptinMonster به وسیله بازدیدکننده و بدون اطلاع کسی فعال میشود اجرا میکند.
بدتر از همه، مهاجم حتی مجبور نیست برای دسترسی به نقطه پایانی API در سایت مورد نظر احراز هویت کند، چرا که درخواست HTTP میتواند بررسیهای امنیتی را تحت شرایط خاص و آسانی دور بزند. در حالی که /wp-json/omapp/v1/support بدترین نمونه میباشد، اما تنها نقطه پایانی ناامن و آسیبپذیر برای بهرهبرداری نیست.
راهکار
بعد از تحقیقات انجام شده بر روی این پلاگین، توسعهدهندگان آن متوجه لزوم بازبینی این API شدند. در این صورت تمامی کاربران OptinMonster نیز باید این پلاگین و وصلههای امنیتی مورد نیاز آن را نصب کنند. در این میان، تمام کلیدهای API به سرقت رفته نیز به سرعت بیاعتبار شده و صاحبان سایت مجبور به تولید کلیدهای جدید شدند.