یک آسیبپذیری بحرانی از نوع Local File Inclusion در افزونه وردپرس کشف شده است که امکان گنجاندن فایلهای PHP را برای مهاجم فراهم میکند. این آسیبپذیری دارای شدت 9.8 بوده و شناسه CVE-2023-6989 به آن اختصاص یافته است. این افزونه برای جلوگیری از باتها و نفوذ به وردپرس مورد استفاده قرار میگیرد.
افزونه Shield Security ویژگیهای مختلفی از جمله دیوار آتش، اسکن بدافزار و بررسی فایلهای لاگ را برای جلوگیری از حملات و نظارت بر وبسایت ارائه میدهد. همچنین دارای یک سیستم مدیریت قالب است که فایلهای دارای پسوند twig، php یا html را render میکند. پیادهسازی غیر امن قابلیت گنجاندن فایل قالب و عملکرد rendering در این افزونه اجازه میدهد در نسخههای آسیبپذیر بتوان فایلهای دلخواه را include نمود. مسیر قالب توسط تابع setTemplate() تنظیم میگردد:
تابع renderPhp() در کلاس Render از تابع path_join() برای پیوند فایل قالب استفاده میکند. سپس چک میشود که فایل قالب وجود داشته باشد و سپس include میشود:
با بررسی کدهای فوق مشاهده میشود که تایید اعتبار مسیر فایل در این توابع انجام نشده است. این موضوع باعث میشود بتوان فایلهای دلخواه php را از روی سرور include نمود.
در این آسیبپذیری تنها میتوان فایلهای PHP را include کرد. به همین دلیل امکان بهرهبرداری از این آسیبپذیری به روش log file poisoning وجود ندارد؛ زیرا این افزونه از تابع isFile() برای چک کردن فایل استفاده میکند. روش دیگر اجرای کد از راه دور با استفاده از حمله wrappers نیز ممکن نیست. اما با این وجود مهاجم میتواند روشهای دیگری را برای اجرای یک فایل php مخرب بر روی سرور به کار ببرد که با استفاده از کشف سایر آسیبپذیریها و chain کردن حملات امکانپذیر است. این آسیبپذیری بیشتر در حالتی ایجاد خطر میکند که مهاجم اجازه بارگذاری فایل php بر روی سرور را دارد ولی امکان دسترسی مستقیم به آن را ندارد.
محصولات تحت تأثیر
کلیه نسخههای قبل از 18.5.9 افزونه Shield Security آسیبپذیر میباشند.
توصیههای امنیتی
توصیه میشود این افزونه را به نسخه 18.5.10 یا بالاتر بهروزرسانی نمایید.
منابع خبر:
[1] https://www.wordfence.com/blog/2024/02/local-file-inclusion-vulnerability-patched-in-shield-securit…
[1] https://nvd.nist.gov/vuln/detail/CVE-2023-6989
- 38