در دنیای امنیت وردپرس، بیش از ۹۵ درصد حفره های امنیتی معمولاً در افزونه ها یا قالب های جانبی کشف می شوند؛ اما زمانی که یک آسیب پذیری بحرانی در خودِ هسته اصلی وردپرس (WordPress Core)» کشف شود که حتی روی یک وردپرس خام و تازه نصب شده نیز بدون نیاز به رمز عبور قابل اجرا باشد، زنگ خطر برای میلیون ها وب سایت در سراسر جهان به صدا درمی آید!
زنجیره آسیب پذیری خطرناک معروف به WP2Shell (با امتیاز بحرانی ۹.۸ از ۱۰ در مقیاس CVSS) دقیقاً یکی از همین تهدیدهای کم سابقه در هسته وردپرس است که به مهاجمان اجازه می دهد بدون نیاز به لاگین کردن، کنترل کامل سایت و سرور را به دست بگیرند. در این مقاله جامع، به زبان ساده و در عین حال با دقت فنی بالا بررسی می کنیم که آسیب پذیری WP2Shell در وردپرس چیست، هکرها چگونه از ترکیب دو باگ CVE-2026-63030 و CVE-2026-60137 برای نفوذ استفاده می کنند و چگونه در کمتر از ۵ دقیقه سایت خود را در برابر آن ایمن سازید.

عبارت WP2Shell (مخفف WordPress to Shell) نامی است که محققان امنیت سایبری روی یک زنجیره اکسپلویت دو مرحله ای در هسته وردپرس گذاشته اند. این آسیب پذیری از نوع اجرای کد از راه دور پیش از احراز هویت (Pre-Authentication Remote Code Execution یا به اختصار Pre-Auth RCE) است.
معنای ساده این عبارت فنی چیست؟ یعنی یک هکر بدون اینکه نام کاربری یا رمز عبور سایت شما را داشته باشد و بدون اینکه نیاز باشد شما روی لینک خاصی کلیک کنید، می تواند صرفاً با ارسال چند درخواست خاص به رابط برنامه نویسی وردپرس (REST API)، به دیتابیس سایت نفوذ کند، دسترسی مدیرکل (Administrator) بگیرد و فایل شل (Web Shell) یا دستورات مستقیم لینوکس را روی سرور شما اجرا نماید!
در جدول زیر تمامی ویژگی ها و مشخصات آسیب پذیری WP2Shell را مشاهده کنید:
| ویژگی امنیتی | جزئیات فنی آسیب پذیری WP2Shell |
|---|---|
| نام عمومی آسیب پذیری | WP2Shell (زنجیره اجرای کد از راه دور در هسته وردپرس) |
| شناسه های رسمی (CVE) | ترکیب دو آسیب پذیری CVE-2026-63030 و CVE-2026-60137 |
| شدت خطر (امتیاز CVSS) | ۹.۸ از ۱۰ (بحرانی / Critical) |
| بخش آسیب پذیر | هسته اصلی وردپرس (WordPress Core – بخش REST API و WP_Query) |
| پیش نیاز مهاجم برای نفوذ | بدون نیاز به ورود یا حساب کاربری (Unauthenticated / Pre-Auth) |
| نسخه های تحت تاثیر | وردپرس ۶.۹.۰ تا ۶.۹.۴ و ۷.۰.۰ تا ۷.۰.۱ (پیش از وصله امنیتی ژوئیه ۲۰۲۶) |
| تأثیر نهایی حمله | دسترسی به اطلاعات دیتابیس، ایجاد حساب مدیر و اجرای کد روی سرور با سطح دسترسی فرایند وردپرس |
برای اینکه بدانیم چرا این باگ تا این اندازه سروصدا به پا کرده است، باید مکانیزم دو مرحله ای آن را بررسی کنیم. در حالت عادی، هیچ کدام از این دو باگ به تنهایی نمی توانستند یک سایت را بدون لاگین هک کنند؛ اما ترکیب هوشمندانه آن ها (Exploit Chaining) فاجعه را رقم می زند:
وردپرس در بخش REST API خود مسیری به نام Batch Endpoint (در آدرس /wp-json/batch/v1) دارد که برای اجرای دسته ای چندین درخواست API در یک نوبت طراحی شده است. در حالت استاندارد، این مسیر فقط برای عملیات های مجاز یا کاربران احراز هویت شده کار می کند.
آسیب پذیری CVE-2026-63030 یک خطای منطقی در نحوه مسیریابی درخواست های دسته ای (Batch-Route Confusion) است. مهاجم با دستکاری ساختار مسیر در زیرمجموعه های درخواست Batch، بررسی های امنیتی (permission_callback) هسته وردپرس را فریب می دهد و به بخش هایی از API دسترسی پیدا می کند که در حالت عادی به سطح دسترسی بالاتر نیاز دارند.
پس از اینکه مهاجم در مرحله اول از سد احراز هویت عبور کرد، به سراغ آسیب پذیری دوم یعنی CVE-2026-60137 می رود. این باگ یک حفره تزریق SQL (SQL Injection) در نحوه پردازش پارامتر author_exclude هنگام فراخوانی نوشته هاست.
مهاجم با تزریق کوئری مخرب SQL در این پارامتر، مستقیماً اطلاعات حساس را از جداول دیتابیس وردپرس (مانند جدول wp_users و کلیدهای بازیابی رمز عبور) استخراج می کند.
در گام آخر، اکسپلویت خودکار WP2Shell با استفاده از اطلاعات استخراج شده از دیتابیس، رمز عبور مدیر اصلی سایت را ریست کرده یا یک نشست (Session) مدیریتی معتبر می سازد. سپس به عنوان مدیر وارد پیشخوان وردپرس شده، یک افزونه آلوده (حاوی کد PHP مخرب) آپلود می کند و به خط فرمان سرور (Shell) دسترسی کامل می گیرد!

از آنجا که کد اثبات مفهوم (PoC) و اسکریپت های خودکار این آسیب پذیری به صورت عمومی منتشر شده اند، ربات های هکر به صورت ۲۴ ساعته در حال اسکن کردن اینترنت برای یافتن سایت های آپدیت نشده هستند. در صورت نفوذ از طریق WP2Shell، خطرات زیر سایت شما را تهدید می کند:
برای ایمن سازی ۱۰۰ درصدی سایت خود در برابر این تهدید، راهکارهای زیر را به ترتیب اولویت انجام دهید:
تیم امنیتی وردپرس پچ رسمی رفع هر دو باگ CVE-2026-63030 و CVE-2026-60137 را در نسخه های امنیتی جدید شاخه های ۶.۹ و ۷.۰ منتشر کرده است.
اگر به دلیل وابستگی های خاص قالب یا افزونه ها، در این لحظه امکان آپدیت فوری هسته وردپرس را ندارید، طبق توصیه مراکز امنیتی باید دسترسی به مسیرهای /wp-json/batch/v1 و پارامتر rest_route=/batch/v1 را در سطح وب سرور مسدود کنید تا زنجیره حمله در همان گام اول قطع شود.
برای این کار، وارد بخش File Manager در کنترل پنل هاست خود شوید، فایل .htaccess را در پوشه public_html باز کرده و قطعه کد زیر را در بالای آن قرار دهید:
# Block WP2Shell Exploit Chain (CVE-2026-63030)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-json/batch/v1 [NC,OR]
RewriteCond %{QUERY_STRING} rest_route=/batch/v1 [NC]
RewriteRule .* – [F,L]
</IfModule>
همچنین اگر از سرور مجازی با وب سرور Nginx استفاده می کنید، می توانید بلوک زیر را به فایل کانفیگ سایت اضافه کنید:
location ~* ^/wp-json/batch/v1 {
return 403;
}
if ($query_string ~* “rest_route=/batch/v1”) {
return 403;
}
اگر دامنه شما به شبکه Cloudflare متصل است، فایروال ابری (WAF) را فعال نگه دارید و یک قانون امنیتی (Custom Rule) تعریف کنید تا هرگونه درخواست حاوی عبارت /batch/v1 یا author_exclude مشکوک را مسدود (Block) کند. همچنین در داخل وردپرس، افزونه های امنیتی خود (مانند Wordfence یا All-In-One Security) را به آخرین نسخه آپدیت کنید تا امضای دیجیتال (Signature) حمله WP2Shell را شناسایی و مهار کنند.
حتی اگر مهاجم بتواند در یک سایت آسیب پذیر به پیشخوان نفوذ کند، هدف بعدی او آپلود افزونه مخرب یا ویرایش کدهای قالب برای گرفتن شل است. با قرار دادن کد زیر در فایل wp-config.php (در زمان هایی که قصد نصب افزونه جدیدی ندارید)، دست هکر را برای اجرای کد روی سرور می بندید:
define( ‘DISALLOW_FILE_EDIT’, true );

از آنجا که این آسیب پذیری پیش از انتشار آپدیت نیز توسط برخی گروه های هکری مورد سوءاستفاده قرار گرفته است، حتماً ۴ مورد زیر را در سایت و هاست خود بررسی کنید (نشانه های آلودگی یا IoCs):
و در پایان: محافظت چندلایه در هاست وردپرس راست چین کلود
کشف آسیب پذیری WP2Shell در وردپرس بار دیگر ثابت کرد که امنیت یک وب سایت، تنها به نصب یک افزونه در پیشخوان خلاصه نمی شود؛ بلکه نیازمند ترکیب به روز نگه داشتن مداوم هسته وردپرس و استفاده از زیرساخت میزبانی مجهز به فایروال های هوشمند سرور است.
در سرویس های هاست وردپرس پرسرعت راست چین کلود، به لطف استفاده از قوانین فایروال پیشرفته در سطح وب سرور (ModSecurity / WAF)، ایزوله سازی کامل اکانت ها و تهیه نسخه های پشتیبان (Backup) منظم، لایه های دفاعی قدرتمندی پیش از رسیدن درخواست های مخرب به هسته وردپرس ایجاد شده است تا کسب وکار آنلاین شما در برابر جدیدترین تهدیدات سایبری در امان بماند.
۱. آیا سایت هایی که هیچ افزونه ای نصب نکرده اند هم در برابر WP2Shell آسیب پذیر هستند؟
بله! برخلاف اکثر باگ های وردپرسی، آسیب پذیری WP2Shell (CVE-2026-63030 و CVE-2026-60137) در کدهای هسته اصلی وردپرس (WordPress Core) قرار دارد؛ بنابراین حتی یک وردپرس کاملاً خام و بدون هیچ افزونه ای نیز در صورت آپدیت نبودن، در معرض این حمله قرار می گیرد.
۲. آیا مسدود کردن مسیر /wp-json/batch/v1 در فایل .htaccess به عملکرد عادی سایت آسیب می زند؟
در بیش از ۹۹ درصد سایت های وردپرسی و فروشگاهی، بخش ظاهری سایت و حتی ویرایشگر گوتنبرگ از مسیر Batch API نسخه ۱ به صورت ناشناس (Unauthenticated) استفاده نمی کنند. بنابراین مسدود کردن آن تا زمان آپدیت کردن هسته وردپرس، هیچ اختلالی در روند خرید کاربران یا نمایش صفحات ایجاد نمی کند.
۳. آیا تغییر آدرس صفحه ورود وردپرس (wp-login.php) جلوی حمله WP2Shell را می گیرد؟
خیر؛ زیرا حمله WP2Shell اصلاً کاری به صفحه ورود سنتی وردپرس ندارد و از طریق رابط برنامه نویسی REST API (مسیر /wp-json/) اجرا می شود. تنها راه قطعی مقابله با آن، آپدیت هسته وردپرس و فیلتر کردن درخواست های REST API توسط فایروال است.
۴. آیا غیرفعال کردن کامل REST API در وردپرس کار درستی است؟
غیرفعال کردن کامل تمام مسیرهای REST API توصیه نمی شود؛ زیرا ویرایشگر بلوکی وردپرس (گوتنبرگ)، افزونه ووکامرس، فرم سازهایی مانند Contact Form 7 و بسیاری از افزونه های سئو برای کارکرد صحیح خود به REST API وابسته هستند. به جای قطع کامل آن، فقط مسیر آسیب پذیر /batch/v1 را محدود کنید و وردپرس را به روز نگه دارید.
۵. اگر سایتم به خاطر آسیب پذیری WP2Shell هک شده باشد، آیا صرفاً آپدیت کردن وردپرس مشکل را حل می کند؟
خیر؛ اگر مهاجم پیش از آپدیت کردن شما وارد سایت شده باشد، احتمالاً یک درِ پشتی (Backdoor) در فایل های هاست یا یک کاربر مدیر مخفی در دیتابیس ایجاد کرده است. در این شرایط، آپدیت کردن وردپرس جلوی ورود مجدد از این باگ را می گیرد، اما برای حذف دسترسی فعلی هکر حتماً باید فایل های هاست، دیتابیس و کلیدهای امنیتی wp-config.php پاک سازی شوند یا بکاپ سالم قبل از تاریخ نفوذ بازگردانی شود.