افزونه PayHere Payment Gateway برای پلتفرم وردپرس (WordPress) در نسخههای 2.4.0 تا 2.4.5 دارای یک آسیبپذیری امنیتی است که میتواند منجر به خسارات مالی برای فروشندگان شود. این نقص امنیتی به مهاجمان اجازه میدهد بدون انجام پرداخت واقعی، وضعیت سفارشها را در سیستم WooCommerce به حالت «پرداخت شده» (Paid) تغییر دهند.
جزئیات فنی و نحوه حمله
این آسیبپذیری زمانی رخ میدهد که مقدار Merchant Secret در تنظیمات افزونه تعیین نشده باشد؛ نکته مهم این است که این حالت، پیکربندی پیشفرض (Default Configuration) افزونه است. در این وضعیت، افزونه قادر به تأیید اصالت (Authenticity) اعلانهای پرداخت دریافتی از طریق Callback Endpoint نیست.
یک مهاجم میتواند یک اعلان پرداخت جعلی (Forged Payment Notification) را به سمت سایت ارسال کند. از آنجایی که مکانیزم تأیید امضای دیجیتال یا بررسی Merchant Secret وجود ندارد، افزونه اعلان جعلی را به عنوان یک تراکنش موفق پذیرفته و وضعیت سفارش مورد نظر را تغییر میدهد. این حمله بدون نیاز به احراز هویت (Unauthenticated) و بدون نیاز به تعامل کاربر (No User Interaction) امکانپذیر است.
میزان تأثیرگذاری
- تأثیر بر یکپارچگی (Integrity): مهاجم میتواند وضعیت سفارشها را دستکاری کند و باعث شود کالایی بدون پرداخت ثبت شود.
- عدم نشت داده (Confidentiality): این آسیبپذیری منجر به دسترسی به اطلاعات حساس یا نشت دادهها نمیشود.
- عدم اختلال در سرویس (Availability): این نقص باعث از دسترس خارج شدن سایت نمیشود.
راهکارهای مقابله و رفع مشکل
در حال حاضر، هیچ وصله امنیتی (Patch) رسمی برای این نسخه منتشر نشده است. بنابراین، مدیران سیستم و کارشناسان امنیت باید اقدامات زیر را انجام دهند:
- پیکربندی صحیح: حتماً یک مقدار Merchant Secret معتبر در تنظیمات افزونه ایجاد و در پنل PayHere نیز وارد کنید تا مکانیزم تأیید اصالت فعال شود.
- غیرفعالسازی: در صورتی که امکان تنظیم Merchant Secret وجود ندارد، توصیه میشود افزونه را تا زمان انتشار نسخه اصلاحشده غیرفعال کنید.
- بازبینی سفارشها: سفارشهایی که در بازه زمانی حساس ثبت شدهاند را با گزارشهای بانکی تطبیق دهید تا از صحت پرداختها اطمینان حاصل کنید.