افزونه Dokan که یک پلاگین چندفروشندگی (Multivendor Marketplace) برای وردپرس است، دارای یک آسیبپذیری در منطق تجاری (Business Logic) است که میتواند منجر به ضرر مالی برای مدیران بازارگاهها شود. این نقص در نسخههای پیش از 5.3.3 مشاهده شده است.
جزئیات فنی آسیبپذیری
مشکل اصلی در ماژول reverse-withdrawal (برداشت معکوس) این افزونه نهفته است. این ویژگی به مدیر سایت اجازه میدهد تا کمیسیونهای بدهی فروشندگان را از حساب آنها کسر کند. با این حال، در نسخههای آسیبپذیر، زمانی که یک فروشنده در هنگام پرداخت از یک کوپن تخفیف (Discount Coupon) استفاده میکند، سیستم مبلغ پیش از تخفیف را برای تسویه بدهی در دفتر کل (Ledger) ثبت میکند، در حالی که مبلغ واقعی دریافت شده از مشتری کمتر است.
به عبارت دیگر، فروشنده میتواند با استفاده از کوپن، بدهی کمیسیون خود را به طور کامل تسویه کند، در حالی که مبلغی کمتر از بدهی واقعی را پرداخت مینماید. این موضوع باعث عدم تطابق بین مبلغ تسویه شده در دفتر کل و مبلغ واقعی جمعآوری شده میشود.
شرایط سوءاستفاده و دامنه اثر
- پیشنیازها: مهاجم باید یک حساب فروشنده تایید شده و احراز هویت شده داشته باشد و ماژول reverse-withdrawal فعال باشد.
- تأثیر (Impact): این آسیبپذیری تنها بر یکپارچگی مالی (Financial Integrity) تأثیر میگذارد و منجر به نشت دادهها (Data Exposure) یا اختلال در سرویس (Service Disruption) نمیشود.
- سطح خطر: با توجه به امتیاز CVSS معادل 2.2، این یک آسیبپذیری با اولویت پایین محسوب میشود.
راهکار مقابله
برای رفع این مشکل، مدیران سایت باید بلافاصله افزونه Dokan خود را به نسخه 5.3.3 یا بالاتر ارتقا دهند. در صورتی که ارتقا فوری امکانپذیر نیست، غیرفعال کردن موقت استفاده از کوپن در هنگام پرداخت یا غیرفعال کردن ماژول reverse-withdrawal میتواند ریسک را کاهش دهد، هرچند که ارتقا تنها راه حل قطعی است.