آسیب‌پذیری Comment2Shell در وردپرس می‌تواند XSS بدون احراز هویت را از طریق نشست ادمین به RCE تبدیل کند

اشتراک گذاری

آسیب‌پذیری Comment2Shell
❞ یک آسیب‌پذیری جدید در هسته وردپرس (WordPress Core) با نام Comment2Shell شناسایی شده است که می‌تواند یک کامنت مخرب را به مسیری برای اجرای کد روی سرور تبدیل کند. این آسیب‌پذیری Comment2Shell با شناسه CVE-2026-93485، به مهاجمان بدون احراز هویت اجازه می‌دهد اسکریپتی مخفی را در یک صفحه وب قرار دهند؛ در ادامه، اگر ادمینی که وارد حساب کاربری خود شده است آن صفحه را باز کند، اسکریپت با استفاده از نشست ادمین می‌تواند کد را روی سرور سایت اجرا کند. آسیب‌پذیری Comment2Shell در نسخه 7.1.1 وردپرس برطرف شده است؛ این ضعف امنیتی امتیاز 7.1 از 10 را در مقیاس CVSS دریافت کرده، اما تاکنون هیچ شواهدی از سوءاستفاده از آن در حملات واقعی مشاهده نشده است.

سازوکار فنی آسیب‌پذیری Comment2Shell

آسیب‌پذیری Comment2Shell به نحوه پردازش کامنت‌ها در وردپرس مربوط بود. هنگام ذخیره کامنت، وردپرس محتوای HTML خطرناک را فیلتر می‌کرد؛ اما بعد از قرار گرفتن کامنت در صفحه، این محتوا دوباره تفسیر و پردازش می‌شد. این ضعف امنیتی در همین فاصله ایجاد شده بود، زیرا محتوایی که در مرحله ذخیره‌سازی از فیلتر عبور کرده بود، هنگام نمایش صفحه می‌توانست به شکلی متفاوت تفسیر شود و امکان اجرای اسکریپت مخرب را فراهم کند.

در این حمله، مهاجم یک شکست خط (Line Break) را داخل ویژگی (Attribute) یک تگ HTML مجاز در کامنت قرار می‌دهد. هنگام پردازش مجدد کامنت برای نمایش، ساختار تگ به‌هم می‌ریزد و بخشی از محتوای مهاجم به قسمتی منتقل می‌شود که مرورگر آن را به‌عنوان بخشی قابل اجرا از کد در نظر می‌گیرد. در نتیجه، اسکریپت مخرب هم‌زمان با بارگذاری صفحه اجرا می‌شود و برای اجرای آن نیازی به کلیک کاربر نیست.

این اسکریپت در مرورگر هر کاربری که صفحه را باز کند، اجرا می‌شود؛ چه کاربر وارد حساب کاربری خود شده باشد و چه نشده باشد. اسکریپت نیز در مرورگر با همان سطح دسترسی کاربر به سایت عمل می‌کند. با این حال، برای تبدیل این XSS به اجرای کد روی سرور، یک شرط دیگر لازم است: صفحه حاوی کامنت مخرب باید توسط یک ادمین واردشده به حساب کاربری باز شود.

در چنین شرایطی، اسکریپت می‌تواند از نشست ادمین برای آپلود یک پلاگین حاوی وب‌شل (Web Shell) استفاده کند. وب‌شل فایل کوچکی است که به مهاجم اجازه می‌دهد دستورات دلخواه خود را روی سرور اجرا کند. به این ترتیب، اجرای اسکریپت در مرورگر ادمین می‌تواند زمینه را برای اجرای کد روی سرور سایت فراهم کند.

آسیب‌پذیری Comment2Shell

نقش نحوه نمایش کامنت‌ها در اجرای حمله

آسیب‌پذیری Comment2Shell به نحوه نمایش کامنت‌ها در سایت نیز وابسته بود. این حمله روی سایت‌هایی امکان‌پذیر بود که از قالب بلوکی (Block Theme) استفاده می‌کردند. قالب‌های بلوکی از زمان انتشار Twenty Twenty-Two، قالب پیش‌فرض وردپرس بوده‌اند. برخی قالب‌های کلاسیک (Classic Theme) نیز آسیب‌پذیر بودند؛ در این قالب‌ها، کامنت‌ها هنگام نمایش صفحه نیز پردازش می‌شدند. قالب Twenty Twenty-One یکی از نمونه‌هایی است که در گزارش فنی به آن اشاره شده است. برای اجرای حمله، کامنت مخرب ابتدا باید روی صفحه نمایش داده می‌شد. وردپرس نیز اعلام کرده است که سوءاستفاده از این آسیب‌پذیری به تأیید کامنت وابسته است.

به‌صورت پیش‌فرض، کامنت کاربری که برای نخستین بار در سایت کامنت می‌گذارد، تا زمان تأیید در انتظار می‌ماند و پیش از تأیید روی صفحه نمایش داده نمی‌شود. با این حال، این محدودیت قابل دور زدن است و مهاجم می‌تواند کامنت را بدون تأیید روی صفحه نمایش دهد. Patchstack نیز تأکید کرده است که تأیید کامنت‌ها به‌تنهایی یک اقدام امنیتی کافی محسوب نمی‌شود.

آسیب‌پذیری Comment2Shell

راهکارهای مقابله با آسیب‌پذیری Comment2Shell در وردپرس

برای رفع آسیب‌پذیری Comment2Shell، کاربران باید وردپرس را به نسخه 7.1.1 یا جدیدترین نسخه شاخه‌ای که همچنان از به‌روزرسانی‌های امنیتی پشتیبانی می‌کند، به‌روزرسانی کنند. نسخه‌های 4.7 تا 7.1 تحت تأثیر این آسیب‌پذیری قرار دارند و نسخه‌های پچ‌‌شده برای شاخه‌های فعلی عبارتند از:

  • WordPress 7.1: نسخه 7.1.1
  • WordPress 7.0: نسخه 7.0.5
  • WordPress 6.9: نسخه 6.9.8
  • شاخه‌های قدیمی‌تر، تا نسخه 4.7: جدیدترین نسخه پچ‌شده مربوط به همان شاخه را نصب کنید؛ برای شاخه 4.7، این نسخه 4.7.36 است.

اگر امکان به‌روزرسانی فوری وردپرس وجود ندارد، می‌توان کامنت‌ها را در پست‌های سایت بست یا قابلیت کامنت‌گذاری را به‌طور کامل غیرفعال کرد تا امکان سوءاستفاده کاهش یابد. همچنین فایروال اپلیکیشن وب (WAF) یا یک پلاگین امنیتی می‌تواند کامنت مخرب را شناسایی و مسدود کند. برای این آسیب‌پذیری راهکار موقت دیگری ارائه نشده است و توصیه اصلی، به‌روزرسانی هسته وردپرس است.

به‌روزرسانی وردپرس آسیب‌پذیری را برطرف می‌کند، اما تغییرات ایجادشده توسط مهاجم در سایت را از بین نمی‌برد. به همین دلیل، در صورت احتمال حمله، سایت باید از نظر وجود تغییرات یا فایل‌های ایجادشده توسط مهاجم نیز بررسی شود.

سایر آسیب‌پذیری‌های امنیتی وردپرس

نسخه 7.1.1 در مجموع 11 آسیب‌پذیری امنیتی را برطرف کرده است. در میان این ضعف‌های امنیتی، آسیب‌پذیری Comment2Shell تنها موردی بود که مهاجم برای سوءاستفاده از آن به حساب کاربری نیاز نداشت؛ سایر آسیب‌پذیری‌ها مستلزم ورود به حساب کاربری و برخورداری از سطح مشخصی از دسترسی بودند.

در همین نسخه، آسیب‌پذیری دیگری با نام Click2Shell نیز برطرف شد. در این حمله، یک لینک دستکاری‌شده می‌توانست باعث نصب یک قالب در وردپرس شود. پس از آن مهاجم می‌توانست با سوءاستفاده از آسیب‌پذیری دیگری در همان قالب، کد دلخواه خود را روی سرور اجرا کند. در این حمله، ادمین باید وارد حساب کاربری خود می‌شد و لینک دستکاری‌شده را باز می‌کرد.

هسته وردپرس در سال 2026 با آسیب‌پذیری‌های مهم دیگری نیز مواجه شده است. در ماه جولای، آسیب‌پذیری wp2shell به مهاجمان اجازه می‌داد بدون ورود به حساب کاربری، کد را روی سرور اجرا کنند. مقام‌های آمریکایی نیز بعداً این آسیب‌پذیری را در فهرست آسیب‌پذیری‌هایی قرار دادند که در حملات واقعی مورد سوءاستفاده قرار گرفته‌اند.

در ماه آگوست نیز پژوهشگران آسیب‌پذیری دیگری را در بخش ورود وردپرس شناسایی کردند که می‌توانست با سوءاستفاده از حساب ادمین، زمینه اجرای کد روی سرور را فراهم کند. این آسیب‌پذیری با Comment2Shell ارتباطی ندارد و یک ضعف امنیتی مستقل محسوب می‌شود.

منابع

دیدگاهتان را بنویسید

مطالب مرتبط