تیم امنیتی وردپرس بهتازگی نسخه 7.1.2 و بهروزرسانیهای امنیتی (Backports) برای نسخههای قدیمیتر (تا نسخه 4.7) را جهت رفع یک آسیبپذیری بحرانی منتشر کرد. این نقص امنیتی که با شناسه CVE-2026-87902 شناخته میشود، دارای امتیاز 9.2 در معیار CVSS v4.0 است و به عنوان یک آسیبپذیری Critical طبقهبندی شده است.
تحلیل فنی آسیبپذیری
این مشکل از نوع Unauthenticated Path Traversal است که منجر به Local File Inclusion (LFI) میشود. ریشه این نقص در تابع locate_template() قرار دارد که نام قالب ارسالی توسط کاربر را بدون بررسی دقیق محدوده دایرکتوری، پردازش میکند. مهاجمان میتوانند با استفاده از تکنیک Double Encoding در متغیر pagename، از محدوده دایرکتوری قالب خارج شده و یک فایل PHP قابل خواندن را از نقاط دیگر سیستم فراخوانی کنند.
شرایط بهرهبرداری و اثرات
اگرچه این آسیبپذیری در هسته وردپرس وجود دارد، اما تبدیل آن به Remote Code Execution (RCE) مشروط به دو عامل است:
- ساختار قالب: قالب فعال (Parent یا Child) باید دارای دایرکتوری سطح بالایی باشد که نام آن با
page-شروع شود (مانند قالبهای Twenty Twelve، Twenty Fourteen، Neve، Hestia و Sydney). - محیط سرور: وجود یک فایل PHP قابل خواندن روی سرور که در صورت فراخوانی، رفتار مفیدی برای مهاجم داشته باشد (به عنوان مثال، فایل
pearcmd.phpدر برخی ایمیجهای Docker یا تنظیمات پیشفرض cPanel با نسخههای PHP قدیمیتر از 8.5).
در صورت برقرار بودن این شرایط، مهاجم میتواند بدون نیاز به احراز هویت یا تعامل کاربر، کنترل کامل سایت را در دست بگیرد.
جزئیات اصلاحیه (Patch)
اصلاحیه منتشر شده دو لایه حفاظتی را اضافه کرده است:
- استفاده از تابع
validate_file()درget_page_template()برای رد کردن درخواستهایی که حاوی کاراکترهای Traversal هستند. - پیادهسازی بررسی
_wp_is_template_path_allowed()در تابعlocate_template()برای اطمینان از اینکه مسیر نهایی فایل حتماً در دایرکتوریهای مجاز قالب قرار دارد.
توصیههای امنیتی برای مدیران SOC و CISO
با توجه به سطح دسترسی مورد نیاز (بدون احراز هویت) و احتمال RCE، اقدامات زیر توصیه میشود:
- بهروزرسانی فوری: ارتقای هسته وردپرس به نسخه 7.1.2 یا آخرین نسخه اصلاح شده در شاخه مربوطه.
- بررسی لاگها: تحلیل لاگهای وبسرور و WAF برای شناسایی درخواستهای مشکوک حاوی توالیهای Traversal در پارامتر
pagename. - ارزیابی وضعیت: در صورتی که شواهدی از دسترسی به مسیرهای آسیبپذیر یافت شد، سایت را به عنوان Compromised در نظر گرفته و فرآیند Incident Response را آغاز کنید.