رفع آسیب‌پذیری Comment2Shell
مقالات تخصصی IT و هاستینگ

آسیب‌پذیری Comment2Shell وردپرس؛ اجرای کد از راه دور با یک نظر مخرب

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

تیم وردپرس این آسیب‌پذیری را که با شناسه CVE-2026-93485 ثبت و Comment2Shell نام‌گذاری شده، در تاریخ ۱۷ سپتامبر و در قالب نسخه 7.1.1 برطرف کرد و از مالکان سایت‌های وردپرسی خواست فوراً وردپرس خود را بروزرسانی کنند. تا این لحظه هیچ نشانه‌ای مبنی بر سوءاستفاده از باگ فوق در حملات واقعی یافت نشده است.

آسیب‌پذیری Comment2Shell در وردپرس

تصویر(1)

شرکت Patchstack، شدت این آسیب‌پذیری را بر اساس معیار CVSS، با امتیاز ۷.۱ از ۱۰ ارزیابی کرده است.

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

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

این اسکریپت در مرورگر هر کاربری که صفحه را باز می‌کند (وارد حساب کاربری خود شده باشد یا نه) اجرا می‌شود و با همان سطح دسترسی کاربر، در سایت عمل می‌ کند. با این حال، اجرای کد روی سرور نیازمند یک شرط دیگر هم است:
"برای اجرای مرحله بعدی حمله، مدیر سایت باید در حساب کاربری خود وارد شده باشد و صفحه‌ای را که نظر مخرب در آن قرار دارد باز کند. در این حالت، اسکریپت می‌تواند از نشست فعال مدیر سوءاستفاده کرده و یک افزونه حاوی وب‌شل (Web Shell) را روی سایت آپلود نماید. وب‌شل فایلی است که می‌تواند امکان اجرای دستورات مهاجم روی سرور را فراهم کند. به این ترتیب، مهاجم می‌تواند از دسترسی مدیر برای اجرای کد روی سرور استفاده نماید.
"

آسیب‌پذیری Comment2Shell در وردپرس

ویدیو(1)

موفقیت این حمله به نحوه نمایش نظرات در قالب سایت بستگی دارد. از آنجا که قالب‌های وردپرس نظرات را با ساختارهای متفاوتی نمایش می‌دهند، این روش روی همه سایت‌ها قابل اجرا نیست و تنها برخی قالب‌های بلوکی (Block Theme) و قالب‌های کلاسیک با ساختار مشابه را تحت تأثیر قرار می‌دهد.

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

آسیب‌پذیری Comment2Shell

تصویر(2)

در سیستم مدیریت محتوای وردپرس، قابلیت بررسی و تأیید پیش‌فرض نظرات فعال نیست. همچنین تنظیماتی که نظرات کاربران جدید را جهت بررسی معلق نگه می‌دارد، دارای آسیب‌پذیری بوده و امکان دور زدن آن وجود دارد. بنابراین یک نظر می‌تواند بدون نیاز به تأیید هیچ فردی روی صفحه قرار گیرد. همان‌طور که شرکت Patchstack اشاره کرده است: «تأیید و نظارت بر نظرات، یک راهکار کنترلی امنیتی محسوب نمی‌شود.»

اقدامات لازم 

وردپرس را به نسخه 7.1.1 یا در صورت انتشار بروزرسانی امنیتی برای نسخه فعلی، به جدیدترین نسخه همان شاخه ارتقا دهید. نسخه‌های آسیب‌پذیر شامل ۴.۷ تا ۷.۱ می‌شوند و نسخه‌های اصلاح‌شده برای نسخه های فعال به شرح زیر هستند:

  • وردپرس ۷.۱: بروزرسانی به نسخه 7.1.1
  • وردپرس ۷.۰: بروزرسانی به نسخه 7.0.5
  • وردپرس ۶.۹: بروزرسانی به نسخه 6.9.8
  • شاخه‌های قدیمی‌تر (تا ۴.۷): نسخه اصلاح‌شده مربوط به همان شاخه (حداقل نسخه ۴.۷.۳۶) را نصب کنید. برای مشاهده فهرست این نسخه‌ها روی لینک زیر کلیک نمایید.

مشاهده تمامی نسخه های وردپرس

نکته مهم درباره نحوه بروزرسانی وردپرس:

حالت عادی (پیش‌فرض): اگر از مسیر پیشخوان > به‌روزرسانی‌ها اقدام کنید، وردپرس به‌طور مستقیم سایت شما را به آخرین نسخه اصلی یعنی 7.1.1 ارتقا می‌دهد.

در صورت عدم سازگاری با نسخه جدید: اگر قالب یا افزونه‌های سایت با نسخه ۷.۱ سازگار نیستند و باید روی شاخه قدیمی‌تر (مثلاً ۶.۹) بمانید، بروزرسانی امنیتی (مثل 6.9.8) معمولاً توسط خود وردپرس به‌طور خودکار در پس‌زمینه انجام می‌شود. در غیر این صورت، می‌توانید پچ امنیتی همان شاخه را از آرشیو نسخه‌های وردپرس دانلود و به صورت دستی آپدیت وردپرس را انجام دهید.

آموزش آپدیت دستی وردپرس و افزونه ها

سایت‌هایی که امکان بروزرسانی فوری ندارند، می‌توانند با غیرفعال کردن کل سیستم نظرات در پیشخوان سایت وردپرسی، این راه نفوذ را مسدود کنند.

برای غیرفعالسازی نظرات در سایت طبق تصویر زیر از طریق پیشخوان وردپرس به تنظیمات (شماره1) >گفتگو (شماره2) مراجعه کرده و سپس گزینه "اجازه به دیگران برای ثبت دیدگاه‌ها روی نوشته‌های تازه" (شماره3) را غیرفعال کنید. همچنین می توانید بخش دیدگاه در نوشته‌های قدیمی (شماره4) را نیز غیرفعال نمایید. این گزینه به‌صورت پیش‌فرض روی 14 روز تنظیم‌شده است. یعنی بخش دیدگاه نوشته هایی که در 14 روز اخیر منتشر شده اند را غیرفعال می کند. می توانید این عدد را به 30 روز و بالاتر نیز تغییر دهید. در نهایت جهت اعمال تغییرات انجام شده، در انتهای صفحه روی ذخیره تغییرات کلیک نمایید.

غیرفعال کردن دیدگاه ها برای جل.گیری از آسیب‌پذیری Comment2Shell

تصویر(3)

در صورتیکه قصد ندارید تنظیمات پیشفرض وردپرس و نوشته های سایت را تغییر دهید، با استفاده از افزونه Disable Comments نیز می توانید به طور کامل بخش نظرات را در سایت خود غیرفعال نمایید. این افزونه در مخزن وردپرس به صورت رایگان در دسترس است.

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

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

اشتراک گذاری:

نظرات

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *