تیم امنیتی PHP روز ۲۱ اکتبر ۲۰۲۶ (۲۹ مهر ۱۴۰۵) دو آسیبپذیری بحرانی را با شناسههای CVE-۲۰۲۶-۱۰۹۶۱۸ و CVE-۲۰۲۶-۱۰۹۶۱۹ وصله کرد. این دو آسیبپذیری با نام «PHP۲Shell» شناخته میشوند و به مهاجم اجازه میدهند بدون نیاز به ورود، روی سرور کد اجرا کند. صاحبان سایتهای وردپرسی باید همین حالا نسخهی PHP سایت را بررسی کنند و مطمئن شوند روی PHP ۸.۵.۱۲، ۸.۴.۲۷، ۸.۳.۳۶ یا ۸.۲.۳۵ یا بستهی وصلهشدهی هاست خود هستند. اگر هاست اشتراکی دارید، از پشتیبانی هاست بپرسید که وصله نصب شده است یا نه (اطلاعیه رسمی PHP، WordPress.org).
ماجرا چیست؟
دو آسیبپذیری با امتیاز ۹٫۲
طبق اطلاعیهی رسمی php.net، هر دو آسیبپذیری در خود PHP وجود دارند و هر دو امتیاز CVSS v۴.۰ برابر ۹٫۲ گرفتهاند:
- CVE-۲۰۲۶-۱۰۹۶۱۸: اگر PHP در میانهی آمادهسازی یک درخواست با کمبود حافظه (Out of Memory) روبهرو شود، دادههای داخلی نیمهکاره میمانند و مرحلهی پاکسازی ممکن است آنها را معتبر فرض کند.
- CVE-۲۰۲۶-۱۰۹۶۱۹: بخشی از وضعیت داخلی یک درخواست، بعد از آزاد شدن حافظهاش باقی میماند. درخواست بعدیای که همان پردازش PHP به آن رسیدگی میکند، ممکن است از این دادهی کهنه استفاده کند.
مرکز امنیت سایبری کانادا این دو را از نوع «استفاده پس از آزادسازی» (Use After Free، CWE-۴۱۶) دستهبندی کرده است (php.net، Canadian Centre for Cyber Security).
چه کسانی در خطرند؟
به گفتهی php.net، همهی نصبهای PHP که درخواست وب را پاسخ میدهند در معرض خطرند: PHP-FPM، آپاچی با mod_php، php-cgi، FrankenPHP و LiteSpeed. بیشترین خطر هم مربوط به mod_php است. برای این حالت اکسپلویتی نمایش داده شده که در آن یک درخواست بدون احراز هویت، پیش از اجرای هر کدی از برنامه، حمله را آغاز میکند.
وبلاگ امنیتی گوگل کلاد نسخههای آسیبپذیر را «همهی نسخههای PHP از ۵.۴ تا ۸.۵.۱۱» اعلام کرده است (Google Cloud).
ربطش به وردپرس چیست؟
وردپرس روی PHP اجرا میشود، پس هر سایت وردپرسی روی یک PHP آسیبپذیر در معرض خطر است. WordPress.org در اطلاعیهی رسمی خود تأکید کرده که این آسیبپذیریها مختص وردپرس نیستند و هیچ آپدیتی برای وردپرس لازم نیست یا برنامهریزی نشده است. راه حل، بهروزرسانی خود PHP است (WordPress.org). به همین دلیل آپدیت کردن وردپرس، افزونهها یا قالب این مشکل را حل نمیکند.
هشدار نهادهای دولتی
چند نهاد امنیت سایبری دولتی دربارهی این آسیبپذیریها هشدار دادهاند و خواستار وصلهی فوری شدهاند. CNBC هم در گزارشی به همین هشدارها پرداخته است (CNBC):
- آژانس امنیت سایبری آمریکا (CISA)
- آژانس امنیت ملی آمریکا (NSA)
- مرکز ملی امنیت سایبری بریتانیا (NCSC)
- بیانیهی مشترک ENISA و نهادهای اتحادیه اروپا (ENISA)
- مرکز امنیت سایبری کانادا
آیا حملهی واقعی گزارش شده است؟
گزارشها در این باره یکسان نیستند. CISA در زمان انتشار هشدارش اعلام کرد که هنوز سوءاستفادهای مشاهده نکرده است. مرکز کانادا هم از وجود کد اثبات مفهوم (PoC) خبر داد، اما گفت حملهی فعالی شناسایی نکرده است. در مقابل، شرکت امنیتی watchTowr اعلام کرده که از ۲۱ اکتبر در شبکهی هانیپات خود سوءاستفادهی واقعی را مشاهده کرده است (watchTowr). در هر صورت، احتیاط حکم میکند فرض کنید حملهها شروع شده است.
چطور نسخهی PHP سایت را بررسی کنیم؟
از داخل پیشخوان وردپرس
طبق راهنمای WordPress.org، این مسیر را بروید: ابزارها ← سلامت سایت ← تب اطلاعات ← بخش سرور. در آنجا عبارت «نسخه PHP» را پیدا کنید (WordPress.org).
از کنترلپنل هاست
در سیپنل، بخش Software و سپس MultiPHP Manager نسخهی PHP هر دامنه را نشان میدهد (مستندات cPanel). برخی هاستها بهجای آن ابزار Select PHP Version را دارند که مربوط به CloudLinux است.
نکتهی مهم: عدد نسخه همیشه گویا نیست
بعضی ارائهدهندگان وصله را روی همان نسخهی قبلی اعمال میکنند (بکپورت). به همین دلیل ممکن است نسخهی وصلهشده عدد قدیمیتری نشان دهد. CloudLinux صراحتاً اعلام کرده که بستهی alt-php۸۵ با نسخهی ۸.۵.۱۱-۵ و بستهی ea-php۸۴ با نسخهی ۸.۴.۲۶-۲ هر دو وصله را دارند، با اینکه شمارهی نسخهشان پایینتر است (CloudLinux Status).
پس اگر روی هاست اشتراکی هستید و عدد نسخه را کمتر از نسخههای اعلامشده میبینید، نتیجهگیری عجولانه نکنید. از پشتیبانی هاست بپرسید آیا بستهی PHP سرور شامل وصلهی CVE-۲۰۲۶-۱۰۹۶۱۸ و CVE-۲۰۲۶-۱۰۹۶۱۹ است یا نه.
بهروزرسانی PHP روی هاستهای ایرانی
هاست اشتراکی
روی هاست اشتراکی، نصب وصلهی PHP کار شرکت میزبان است، نه کاربر. WordPress.org هم میگوید ممکن است میزبان شما در حال بهروزرسانی PHP و افزودن قوانین فایروال باشد، اما باز هم خودتان باید پیگیری کنید. کارهایی که از دست شما برمیآید:
- یک تیکت به پشتیبانی هاست بفرستید و دقیقاً بپرسید: «آیا PHP سرور در برابر CVE-۲۰۲۶-۱۰۹۶۱۸ و CVE-۲۰۲۶-۱۰۹۶۱۹ وصله شده است؟»
- اگر سایت روی PHP ۸.۱ یا قدیمیتر است، در MultiPHP Manager یا Select PHP Version نسخهی ۸.۳ یا بالاتر را انتخاب کنید. WordPress.org نسخهی ۸.۳ یا بالاتر را توصیه میکند.
- بعد از تغییر نسخه، سایت را کامل تست کنید. طبق مستندات cPanel تغییر نسخه فوراً اعمال میشود و اگر مشکلی پیش آمد، میتوانید به نسخهی قبلی برگردید.
سرور مجازی یا اختصاصی (VPS)
اگر خودتان سرور را مدیریت میکنید، مسئولیت با شماست:
- سرورهای دارای cPanel/WHM: cPanel بستههای وصلهشدهی EasyApache ۴ را منتشر کرده است، از جمله ea-php۸۲ نسخهی ۸.۲.۳۵، ea-php۸۳ نسخهی ۸.۳.۳۶، ea-php۸۴ نسخهی ۸.۴.۲۷ و ea-php۸۵ نسخهی ۸.۵.۱۲. دستور پیشنهادی cPanel برای بهروزرسانی
/scripts/update-packagesاست (cPanel Support). - سرورهای CloudLinux: بستههای وصلهشدهی alt-php و ea-php در مخازن پایدار CloudLinux منتشر شدهاند (CloudLinux Status).
- سایر توزیعهای لینوکس: طبق php.net، وصله پیشاپیش در اختیار توزیعها قرار گرفته است. بستههای بهروز را از مدیر بستهی توزیع خود بگیرید. php.net توصیه کرده کاربرانی که به مخزن داوطلبانهی
rpms.remirepo.netمتکیاند، به بستههای رسمی توزیع یا کامپایل از سورس مهاجرت کنند. - بعد از بهروزرسانی: PHP-FPM یا وبسرور را ریاستارت کنید تا پردازشهای قدیمی بسته شوند.
اگر سایت را به CDN متصل کردهاید، راهنمای اتصال VPS به CDN هم برای مرور تنظیمات مفید است. اما توجه کنید که CDN یا فایروال جایگزین وصله نیست.
اگر PHP ۸.۱ یا قدیمیتر دارید
پروژهی PHP برای نسخهی ۸.۱ و قدیمیتر نسخهی رسمی منتشر نمیکند. CISA توصیه کرده سازمانهایی که نمیتوانند فوراً بهروزرسانی کنند یا هنوز از ۸.۱ و قدیمیتر استفاده میکنند، سیستمهای مبتنی بر PHP را تا زمان وصله آفلاین کنند. php.net هم یادآوری کرده که PHP ۸.۲ در ۳۱ دسامبر ۲۰۲۶ (۱۰ دی ۱۴۰۵) به پایان عمر میرسد و بعد از آن وصلهی امنیتی دریافت نمیکند. پس اگر الان روی ۸.۲ هستید، مهاجرت به ۸.۳ یا بالاتر را هم برنامهریزی کنید.
چکلیست امنیتی سایت وردپرسی
همین امروز
- نسخهی PHP را از مسیر «سلامت سایت» بررسی کنید.
- از هاست دربارهی وصلهی دو CVE تأییدیهی کتبی بگیرید.
- اگر روی PHP ۸.۱ یا پایینتر هستید، به ۸.۳ یا بالاتر مهاجرت کنید.
- پیش از هر تغییری، از فایلها و دیتابیس نسخهی پشتیبان کامل بگیرید.
اگر فوراً امکان وصله نیست
php.net چند تنظیم موقت معرفی کرده که مسیرهای حمله را کم میکنند اما سایت را امن نمیکنند. یکی از آنها غیرفعال کردن session.upload_progress.enabled و کاهش post_max_size است. این تنظیمات معمولاً فقط روی سرور مدیریتشده توسط خودتان قابل انجام است. تأکید php.net این است که «تنها راه کامل، بهروزرسانی است». CISA هم گفته فایروال برنامهی وب (WAF) تا زمان وصله ممکن است بخشی از حفاظت را فراهم کند.
بعد از وصله: نشانههای نفوذ را بررسی کنید
CISA و مرکز کانادا توصیه کردهاند لاگها برای فعالیت مشکوک بررسی شوند؛ بهویژه پردازشهای PHP که shell اجرا میکنند یا ابزار دانلود میکنند. همچنین فایلها، حسابهای کاربری و اتصالهای خروجی غیرمنتظره را بررسی کنید. در سطح وردپرس این کارها را انجام دهید:
- فهرست کاربران مدیر را برای حسابهای ناشناس بررسی کنید.
- رمزهای عبور مدیر، دیتابیس و FTP را عوض کنید. راهنمای مدیریت و نگهداری پسورد به شما کمک میکند.
- فایلهای PHP جدید و ناشناس در پوشهی
wp-content/uploadsرا بررسی کنید.
پاسخ به سوالات شما
آیا آپدیت وردپرس این مشکل را حل میکند؟
خیر. WordPress.org اعلام کرده این آسیبپذیریها در خود PHP هستند و هیچ آپدیتی برای وردپرس لازم نیست یا برنامهریزی نشده است. باید PHP سرور بهروز شود.
نسخهی PHP من ۸.۳.۳۵ است ولی هاست میگوید وصله شده؛ درست است؟
ممکن است درست باشد. برخی ارائهدهندگان مثل CloudLinux وصله را روی نسخهی قبلی بکپورت میکنند و شمارهی نسخه پایینتر میماند. از هاست بخواهید تأیید کند که بسته شامل وصلهی CVE-۲۰۲۶-۱۰۹۶۱۸ و CVE-۲۰۲۶-۱۰۹۶۱۹ است.
روی PHP ۷.۴ هستم؛ چه کار کنم؟
پروژهی PHP برای ۷.۴ نسخهی رسمی منتشر نمیکند و فقط وصلهی حداقلی در قالب سورس ارائه داده است. سادهترین و امنترین راه، ارتقا به PHP ۸.۳ یا بالاتر پس از تست سازگاری افزونهها و قالب است.

دیدگاهها