در پی افشای جزئیات فنی یک زنجیره حمله خطرناک در هسته وردپرس (WordPress Core)، کارشناسان امنیتی نسبت به آسیبپذیری wp2shell هشدار دادند؛ ضعفی که به مهاجمان بدون احراز هویت اجازه میدهد دستورات دلخواه خود را روی سرور اجرا کنند. آسیبپذیری wp2shell در واقع حاصل زنجیرهسازی دو ضعف امنیتی مجزا در هسته وردپرس است و حتی نصبهای پیشفرض وردپرس بدون هیچ پلاگین اضافی را نیز در معرض ریسک قرار میدهد.
اجرای کد بدون احراز هویت در سایتهای وردپرسی
در آسیبپذیری wp2shell، مهاجم میتواند تنها با ارسال یک درخواست HTTP ناشناس، کد دلخواه خود را روی یک سایت وردپرسی اجرا کند. این ضعف امنیتی در هسته وردپرس قرار دارد؛ به همین دلیل، حتی نصبهای پیشفرض وردپرس که هیچ پلاگین اضافی روی آنها فعال نیست نیز در معرض سوءاستفاده قرار دارند.
نسخههای آسیبپذیر و نسخههای دریافتکننده پچ امنیتی به شرح زیر هستند:
- نسخههای تحت تأثیر: وردپرس 6.9.0 تا 6.9.4 و 7.0.0 تا 7.0.1
- نسخههای پچشده: وردپرس 6.9.5 و 7.0.2
همچنین وردپرس قابلیتی موسوم به بهروزرسانی اجباری (Forced Updates) را از طریق سیستم بهروزرسانی خودکار فعال کرد تا فرآیند انتشار پچ امنیتی و اعمال آن روی سایتها سریعتر انجام شود.
جزئیات فنی آسیبپذیری wp2shell و زنجیره دو ضعف امنیتی
این آسیبپذیری یک باگ واحد نیست، بلکه از ترکیب دو آسیبپذیری مجزا تشکیل شده است که اکنون هر دو دارای شناسه CVE هستند. CVE-2026-63030 مربوط به ضعف سردرگمی در مسیرهای Batch در REST API (REST API Batch-Route Confusion) است؛ در حالی که CVE-2026-60137 یک آسیبپذیری تزریق SQL (SQL Injection) در هسته وردپرس محسوب میشود.
با زنجیرهسازی این دو ضعف، مهاجمان میتوانند یک درخواست ناشناس را تا مرحله اجرای کد پیش ببرند. سازوکار کامل این حمله منتشر شده و یک کد اثبات مفهوم عملی (PoC) نیز در گیتهاب قرار گرفته است.
شرکت Assetnote، زیرمجموعه Searchlight Cyber، پس از شناسایی ضعف مربوط به مسیر Batch در REST API، جزئیات آن را از طریق برنامه هکر وان (HackerOne) وردپرس گزارش کرد.
گزارش فنی منتشرشده با نام wp2shell نشان میدهد که این حمله هیچ پیششرطی ندارد و یک مهاجم ناشناس میتواند آن را اجرا کند. همچنین آسیبپذیری تزریق SQL بهصورت جداگانه گزارش شده است.
شرکت Searchlight هنوز گزارش فنی کامل خود را منتشر نکرده و به مدیران سایتها توصیه کرده است برای بررسی وضعیت سایتهای خود از ابزار بررسی موجود در wp2shell.com استفاده کنند. با این حال، این تأخیر دیگر تأثیری بر بررسی آسیبپذیری ندارد؛ زیرا پچ منتشر شده و پژوهشگران امنیتی با تحلیل تغییرات کد، جزئیات سازوکار این ضعف را به دست آوردهاند.
نسخههای آسیبپذیر وردپرس و محدوده تأثیرگذاری حمله
دو ضعف امنیتی تشکیلدهنده آسیبپذیری wp2shell روی نسخههای یکسانی از وردپرس تأثیر نمیگذارند؛ بنابراین سطح ریسک برای سایتها بسته به نسخهای که استفاده میکنند متفاوت است.
آسیبپذیری تزریق SQL از نسخه 6.8 وردپرس وجود دارد، اما ضعف مربوط به مسیر Batch در REST API که که مهاجمان را قادر میسازد از این آسیبپذیری برای اجرای کد از راه دور بدون احراز هویت (Unauthenticated RCE) استفاده کنند، تنها نسخههای 6.9 و بالاتر را تحت تاثیر قرار میدهد.
محدوده تأثیر نسخهها به این صورت است:
- وردپرس 8.0 تا 6.8.5: تنها در برابر تزریق SQL آسیبپذیر هستند. این آسیبپذیری در نسخه 6.8.6 پچ شده است.
- وردپرس 9.0 تا 6.9.4: امکان اجرای زنجیره کامل اجرای کد از راه دور را دارند و این ضعف در نسخه 6.9.5پچ شده است.
- وردپرس 0.0 تا 7.0.1: امکان اجرای زنجیره کامل اجرای کد از راه دور را دارند و این ضعف در نسخه 7.0.2 پچ شده است.
نسخه بتا 2 وردپرس 7.1 نیز شامل هر دو پچ امنیتی مربوط به این ضعفها را میشود. سایتهایی که از نسخه 6.8 استفاده میکنند، از طریق این زنجیره حمله امکان اجرای کد از راه دور ندارند؛ به همین دلیل، نسخه 6.8.6 تنها پچ مربوط به آسیبپذیری تزریق SQL را دریافت کرده است.
وردپرس تاکنون اعلام نکرده است که آیا بهروزرسانی اجباری برای سایتهایی که قابلیت بهروزرسانی خودکار را غیرفعال کردهاند نیز اعمال شده است یا خیر. بنابراین مدیران سایتها نباید صرفاً به دریافت خودکار پچ امنیتی اکتفا کنند و لازم است نسخه فعال وردپرس خود را بررسی نمایند.
گستردگی تهدید برای سایتهای وردپرسی
بر اساس گزارش Searchlight، بیش از 500 میلیون وبسایت از وردپرس استفاده میکنند. البته این رقم نشاندهنده تعداد کل نصبهای وردپرس است و تعداد دقیق سایتهای آسیبپذیر را مشخص نمیکند.
زنجیره اجرای کد از راه دور مرتبط با آسیبپذیری wp2shell تنها در نسخههای 6.9 و بالاتر وجود دارد؛ نسخهای که در تاریخ 2 دسامبر 2025 منتشر شد. بنابراین تمام سایتهایی که در مسیر اجرای کد قرار میگیرند، از نسخههایی استفاده میکنند که کمتر از هشت ماه از انتشار آنها گذشته است. با این حال، هیچ گزارش رسمی تعداد دقیق سایتهای آسیبپذیر را اعلام نکرده است.
نحوه عملکرد زنجیره اکسپلویت
این زنجیره حمله از دو خطای کوچک اما مهم تشکیل شده است. بخش تزریق SQL در پارامتر author__not_in تابع WP_Query قرار دارد. اگر به جای یک آرایه (Array)، یک مقدار رشتهای به این پارامتر ارسال شود، بررسیای که برای دریافت آرایه طراحی شده، دور زده شده است و همان مقدار ورودی بدون پردازش مناسب وارد کوئری میشود.
مهاجم برای دسترسی بدون نیاز به ورود کاربر به این پارامتر، از Endpoint مربوط به Batch در وردپرس استفاده میکند. مسیر /wp-json/batch/v1 به وردپرس اجازه میدهد چند درخواست فرعی (Sub-request) را در قالب یک درخواست واحد پردازش کند و اطلاعات مربوط به آنها را در دو آرایه مرتبط با یکدیگر مدیریت کند.
یک خطا در یکی از درخواستهای فرعی (Sub-request) باعث ناهماهنگی میان این آرایهها میشود؛ در نتیجه، ممکن است یک درخواست با پردازشگر (Handler) مربوط به درخواست دیگری پردازش شود و مسیر اجرای مورد انتظار را دور بزند.
این سردرگمی در مسیر پردازش، محدودیت فهرست مجاز Endpointها (Allow-list) را دور زده و ورودی مهاجم را بدون احراز هویت به کوئری آسیبپذیر منتقل میکند.
قابلیت Batch در وردپرس از نسخه 5.6 (منتشرشده در سال 2020) وجود داشته است، اما ضعف امنیتی مرتبط با این قابلیت که امکان سوءاستفاده از آن را فراهم میکند، از نسخه 6.9 معرفی شده است.
ارزیابی شدت آسیبپذیری wp2shell و وضعیت امنیتی آن
ارزیابی شدت این آسیبپذیری نیازمند بررسی دقیق معیارهای امتیازدهی است. اطلاعیه امنیتی رسمی(Security Advisory) وردپرس، زنجیره اجرای کد از راه دور را در سطح بحرانی (Critical) دستهبندی کرده است.
با این حال، رکورد CVE امتیاز این آسیبپذیری را 7.5 و در سطح بالا (High) ثبت کرده است. این اختلاف به دلیل تفاوت در معیارهای ارزیابی تأثیر (Impact Metrics) است؛ زیرا این معیارها بیشتر بر امکان دسترسی به دادهها تمرکز کردهاند و پیامدهای مربوط به تغییر یا اختلال در یکپارچگی (Integrity) و دسترسپذیری (Availability) سیستم را که میتواند در اثر اجرای کد رخ دهد، بهطور کامل در نظر نگرفتهاند.
در مقابل، آسیبپذیری تزریق SQL امتیاز 9.1 را دریافت کرده و در سطح بحرانی طبقهبندی شده است.
نکته قابلتوجه این است که زنجیره اجرای کد از راه دور که بسیاری آن را یک آسیبپذیری بحرانی میدانند، از نظر امتیاز CVE لزوماً شدیدترین بخش این زنجیره محسوب نمیشود. دلیل این موضوع آن است که سیستم امتیازدهی CVE، تأثیر مستقیم آسیبپذیری تزریق SQL بر پایگاه داده را با شدت بیشتری ارزیابی میکند، در حالی که ضعف مربوط به مسیر Batch در REST API را بهتنهایی یک خطای پردازشی در نظر میگیرد. به همین دلیل، مدیران و تیمهای امنیتی باید هر دو شناسه CVE-2026-63030 و CVE-2026-60137 را بهصورت مستقل بررسی و پیگیری کنند و ارزیابی خود را صرفاً بر اساس سطح شدت یکی از آنها انجام ندهند.
نقش کش دائمی Object در جلوگیری از زنجیره حمله
بررسیهای Cloudflare نشان میدهد که زنجیره اجرای کد از راه دور تنها در سایتهایی قابل سوءاستفاده است که از کش دائمی Object استفاده نکنند. همزمان با انتشار جزئیات این آسیبپذیری، Cloudflare نیز قوانین جدید فایروال اپلیکیشن وب (WAF) را برای مسدودسازی این زنجیره حمله منتشر کرد.
از آنجا که نصب پیشفرض وردپرس بهصورت عادی از کش دائمی Object استفاده نمیکند، سایتهایی که با تنظیمات پیشفرض اجرا میشوند همچنان در برابر این مسیر حمله آسیبپذیر هستند.
در مقابل، سایتهایی که از Redis یا Memcached بهعنوان کش دائمی Object استفاده میکنند، ممکن است در برابر این زنجیره حمله مصون بمانند. البته این موضوع صرفاً یک پیامد جانبی از نحوه عملکرد این نوع کش است و نباید آن را بهعنوان یک راهکار امنیتی یا جایگزین نصب پچ در نظر گرفت. علاوه بر این، استفاده از کش دائمی Object هیچ تأثیری بر رفع آسیبپذیری تزریق SQL ندارد.
انتشار نمونه اثبات مفهوم و افزایش ریسک سوءاستفاده گسترده
پس از اختصاص شناسههای CVE، ابزارهای اسکن امنیتی نیز قادر به شناسایی این آسیبپذیری شدهاند. شرکت Rapid7 اعلام کرده است که قابلیت بررسی احراز هویتشده (Authenticated Checks) برای محصولات InsightVM و Nexpose از 20 ژوئیه در دسترس قرار خواهد گرفت.
با وجود این، این آسیبپذیری هنوز در فهرست KEV سازمان CISA ثبت نشده است؛ زیرا تاکنون هیچ مورد تأییدشدهای از سوءاستفاده فعال از آن گزارش نشده است. با این حال، نبود شواهد از حملات فعال بهمعنای ایمن بودن این ضعف نیست و مدیران سایتها نباید به آن اتکا کنند.
واقعیت این است که سوءاستفاده گسترده از آسیبپذیریهای وردپرس به روشی رایج برای مهاجمان تبدیل شده است. برای مثال، پیش از افشای زیرساخت گروه مهاجم WP-SHELLSTORM در ماه ژوئن، تنها یک ضعف امنیتی در یک پلاگین کش (Caching Plugin) باعث شد این گروه، طبق ادعای خود، بیش از 17 هزار وبسایت را آلوده کند. اگرچه این آسیبپذیری پیشتر افشا و برای آن پچ امنیتی منتشر شده بود، اما سوءاستفاده از آن تنها در وبسایتهایی امکانپذیر بود که از تنظیمات پیشفرض پلاگین استفاده نمیکردند.
اما آسیبپذیری wp2shell شرایط متفاوتی دارد؛ زیرا جزئیات فنی و کد اثبات مفهوم (PoC) آن بهصورت عمومی منتشر شده، پچ امنیتی آن در دسترس قرار گرفته و از همه مهمتر، روی نصبهای پیشفرض وردپرس نیز قابل سوءاستفاده است. همین موضوع میتواند احتمال حملات گسترده را بهطور قابلتوجهی افزایش دهد.
راهکارهای کاهش ریسک
اگر در حال حاضر امکان بهروزرسانی وردپرس را ندارید، شرکت Searchlight چند راهکار موقت برای کاهش ریسک ناشی از آسیبپذیری wp2shell پیشنهاد کرده است. هدف مشترک تمام این راهکارها، جلوگیری از دسترسی کاربران ناشناس به Endpoint مربوط به Batch است. با این حال، این اقدامات تنها نقش یک راهکار موقت را دارند و نمیتوانند جایگزین نصب پچ امنیتی شوند. همچنین ممکن است برخی یکپارچهسازیها یا قابلیتهای قانونی سایت را نیز با اختلال مواجه کنند.
راهکارهای پیشنهادی عبارتند از:
- در فایروال اپلیکیشن وب (WAF)، هر دو مسیر /wp-json/batch/v1 و rest_route=/batch/v1 را مسدود کنید. تنها مسدود کردن مسیر /wp-json کافی نیست؛ زیرا در این صورت، مسیر مبتنی بر رشته کوئری همچنان قابل دسترسی خواهد بود. شرکت Cloudflare اعلام کرده است که قوانین WAF مدیریتشده این شرکت اکنون این زنجیره حمله را برای سایتهای تحت پوشش مسدود میکند.
- Disable WP REST API را نصب و فعال کنید تا دسترسی بدون احراز به REST API بهطور کامل غیرفعال شود.
- از پلاگین Drop-in منتشرشده توسط Searchlight استفاده کنید. این پلاگین در مرحله rest_pre_dispatch از پردازش درخواستهای ناشناس به مسیر /batch/v1 جلوگیری میکند.
انتشار پچ، آغاز رقابت میان مدافعان و مهاجمان
هسته وردپرس یک پروژه متنباز است و در هر نسخه جدید، فایلهایی که تغییر کردهاند بهصورت عمومی مشخص میشوند. به همین دلیل، با وجود اینکه شرکت Searchlight گزارش فنی خود را منتشر نکرد، سایر پژوهشگران امنیتی در کمتر از یک روز با بررسی پچ ، نحوه عملکرد این آسیبپذیری را مهندسی معکوس (Reverse Engineer) کردند و مدت کوتاهی بعد، یک اکسپلویت عملی نیز در گیتهاب منتشر شد.
واقعیت این است که انتشار یک پچ امنیتی، ناخواسته بخشی از اطلاعات مورد نیاز برای شناسایی آسیبپذیری را نیز در اختیار مهاجمان قرار میدهد. در چنین شرایطی، سرعت انتشار پچ امنیتی اهمیت زیادی پیدا میکند؛ زیرا هرچه مدیران سایتها زودتر آن را دریافت و نصب کنند، فرصت مهاجمان برای تحلیل آسیبپذیری و ساخت اکسپلویت کمتر خواهد بود. به همین دلیل، وردپرس این بار انتشار بهروزرسانی امنیتی را با سرعت بیشتری انجام داد.
اکنون اکسپلویت این آسیبپذیری بهصورت عمومی در دسترس است، اما روند نصب بهروزرسانی روی سایتهای وردپرسی همچنان ادامه دارد. آمار نسخههای وردپرس در نهایت نشان خواهد داد چه تعداد از سایتها پچ را دریافت کردهاند و حجم درخواستهای اسکن علیه مسیر batch/v1 نیز مشخص خواهد کرد چه تعداد مهاجم در جستوجوی هدفهای آسیبپذیر بودهاند. اینکه کدام روند با سرعت بیشتری پیش برود، در نهایت سرنوشت این آسیبپذیری را رقم خواهد زد.