آسیبپذیری جدید PHP با شناسه CVE-2026-115560؛ خطر اجرای کد از راه دور در شرایط خاص

زبان برنامهنویسی PHP در ۲۳ اکتبر ۲۰۲۶ از شناسایی آسیبپذیری امنیتی جدیدی با شناسه CVE-2026-115560 خبر داد. این آسیبپذیری به قابلیت ثبت پیشرفت بارگذاری فایلها در سیستم مدیریت نشستهای PHP (Session) مربوط است و در شرایط خاص میتواند مسیری برای اجرای کد از راه دور (RCE) فراهم کند.
این خبر تنها دو روز پس از انتشار وصلههای امنیتی دو آسیبپذیری مهم PHP2Shell منتشر شد. با این حال، CVE-2026-115560 آسیبپذیری مستقلی با شرایط بهرهبرداری متفاوت نیست که با نصب همان وصلهها لزوما برطرف شود؛ بلکه یک مسیر آسیبپذیر دیگر است که تیم PHP قصد دارد آن را در نسخه عادی بعدی برای رفع اشکال اصلاح کند.
نکته مهم این است که طبق اطلاعیه رسمی PHP، این آسیبپذیری تنها در ترکیب غیرمعمولی از تنظیمات و کد برنامه رخ میدهد. بنابراین، صرف استفاده از PHP یا فعال بودن قابلیت بارگذاری فایل، به معنای آسیبپذیر بودن یک وبسایت نیست.
آسیبپذیری CVE-2026-115560 چگونه کار میکند؟
این آسیبپذیری به نحوه مدیریت و سریالسازی اطلاعات نشستها در PHP مربوط است. سریالسازی فرایندی است که طی آن دادهها به قالبی تبدیل میشوند تا ذخیرهسازی یا انتقال آنها امکانپذیر باشد. PHP برای ذخیره و بازیابی اطلاعات نشست، از سازوکارهای مشخصی برای این کار استفاده میکند.
مشکل زمانی ایجاد میشود که برنامه از ترکیبی خاص از تنظیمات مربوط به سریالسازی نشست و قابلیت ثبت پیشرفت بارگذاری فایلها استفاده کند. برای قرار گرفتن برنامه در شرایط آسیبپذیر، باید سه شرط زیر همزمان برقرار باشند:
- مقدار
session.serialize_handlerدر پیکربندی برنامه رویphp_binaryیاphp_serializeتنظیم شده باشد. - برنامه پیش از اجرای تابع
session_start()، در زمان اجرا و با استفاده ازini_set()مقدار این تنظیم را بهphpتغییر دهد. - قابلیت
session.upload_progressهمچنان فعال باشد.
وجود هر سه شرط برای شکلگیری مسیر آسیبپذیری ضروری است. برنامههایی که مقدار session.serialize_handler را در زمان اجرا تغییر نمیدهند، از این مسیر مشخص در معرض خطر نیستند؛ حتی اگر قابلیت ثبت پیشرفت بارگذاری فایلها در آنها فعال باشد.
تیم PHP احتمال وقوع چنین ترکیبی را پایین ارزیابی کرده است. به همین دلیل، برخلاف دو آسیبپذیری قبلی PHP2Shell، برای این مورد انتشار فوری یک نسخه اضطراری در نظر گرفته نشده و اصلاح آن در چرخه عادی انتشار نسخههای رفع اشکال انجام میشود.
آیا نسخههای جدید PHP هم آسیبپذیر هستند؟
بله، نصب وصلههای مربوط به PHP2Shell بهتنهایی برای رفع این آسیبپذیری کافی نیست. مشکل جدید پس از انتشار نسخههای اصلاحشده PHP2Shell نیز مطرح شده است و میتواند در صورت وجود شرایط لازم، در نسخههای بهروز هم اهمیت داشته باشد.
در زمان انتشار اطلاعیه اولیه، تیم PHP نسخه اصلاحشده مشخصی برای CVE-2026-115560 معرفی نکرده بود. بنابراین، مدیران سرور نباید صرفا با بررسی شماره نسخه PHP تصور کنند که این آسیبپذیری برطرف شده است.
البته این موضوع به معنای آسیبپذیر بودن تمام سرورهای PHP نیست. اگر برنامه ترکیب تنظیماتی ذکرشده را نداشته باشد، مسیر بهرهبرداری اعلامشده برای آن برقرار نخواهد بود. با این حال، بررسی تنظیمات سرور و کد برنامه و اجرای راهکار موقت توصیهشده تا انتشار اصلاحیه رسمی، اقدام محتاطانهتری است.
راهکار موقت برای مقابله با CVE-2026-115560
تیم توسعه PHP توصیه کرده است تا زمان انتشار نسخه اصلاحشده، قابلیت ثبت پیشرفت بارگذاری فایلها غیرفعال شود. این قابلیت با تنظیم session.upload_progress.enabled کنترل میشود.
برای غیرفعال کردن آن، مقدار زیر را در فایل پیکربندی php.ini قرار دهید:
session.upload_progress.enabled = 0
در سرورهایی که از PHP-FPM استفاده میکنند، میتوان این مقدار را در پیکربندی مناسب سرور یا Pool مربوط به PHP نیز تنظیم کرد. پس از اعمال تغییر، فرایندهای PHP-FPM یا سرویس مربوطه را مجددا راهاندازی کنید تا تنظیم جدید اعمال شود.
نکته مهم این است که تنظیم باید در محیطی اعمال شود که درخواستهای واقعی وبسایت را پردازش میکند. تنظیمات PHP در خط فرمان ممکن است با تنظیمات PHP-FPM یا وبسرور تفاوت داشته باشند؛ بنابراین، بررسی مقدار تنظیم در محیط اجرایی وبسایت اهمیت دارد.
غیرفعال کردن این قابلیت معمولا عملکرد اصلی بارگذاری فایلها را متوقف نمیکند، اما برنامههایی که از آن برای نمایش میزان پیشرفت بارگذاری استفاده میکنند، ممکن است این امکان را از دست بدهند.
این راهکار موقت از سوی تیم PHP برای مقابله با مسیر آسیبپذیری اعلام شده است و باید تا انتشار اصلاحیه رسمی ادامه پیدا کند. اگر پیشتر این تنظیم را برای مقابله با آسیبپذیری CVE-2026-109619 اعمال کردهاید، نیازی به اقدام اضافهای از این بابت نیست؛ کافی است تنظیم را فعال نگه دارید.
مدیران سرور چه اقداماتی باید انجام دهند؟
برای مدیریت این آسیبپذیری، بهتر است اقدامات زیر در اولویت قرار گیرند:
- تنظیمات PHP را بررسی کنید. مقدار
session.upload_progress.enabledرا در محیط اجرایی وبسایت بررسی کنید و مطمئن شوید که قابلیت موردنظر غیرفعال است. - کد برنامه را ارزیابی کنید. جستوجو در کد اختصاصی و وابستگیهای برنامه برای یافتن تغییرات زمان اجرای
session.serialize_handlerبا تابعini_set()میتواند به مشخص شدن وجود شرایط لازم کمک کند. - وصلههای امنیتی PHP را نصب کنید. نسخههای اصلاحشده مربوط به PHP2Shell را نصب کنید؛ زیرا راهکار موقت آسیبپذیری جدید جایگزین وصلههای آن دو آسیبپذیری نیست.
- اطلاعیههای رسمی PHP را دنبال کنید. پس از انتشار نسخه رفع اشکال، نسخه مناسب شاخه PHP مورد استفاده خود را نصب کنید و وضعیت اصلاح آسیبپذیری را دوباره بررسی کنید.
اگر مدیریت سرور در اختیار شرکت میزبان است، میتوانید از پشتیبانی بخواهید وضعیت این تنظیم و اعمال راهکار موقت را در محیط اجرایی PHP بررسی کند. این موضوع بهویژه در میزبانیهایی اهمیت دارد که کاربر به فایل اصلی php.ini یا تنظیمات PHP-FPM دسترسی مستقیم ندارد.
تفاوت CVE-2026-115560 با PHP2Shell چیست؟
اگرچه هر دو مورد به امکان اجرای کد از راه دور در PHP مربوط هستند، شرایط بهرهبرداری از آنها یکسان نیست. آسیبپذیری جدید به ترکیب خاصی از تنظیمات مدیریت نشست و کد برنامه نیاز دارد؛ در حالی که دو آسیبپذیری PHP2Shell مسیرهای دیگری برای سوءاستفاده از PHP داشتند و برای آنها وصلههای امنیتی جداگانه منتشر شد.
از طرف دیگر، تنظیم session.upload_progress.enabled=0 پیشتر نیز بهعنوان یکی از راهکارهای کاهش خطر آسیبپذیری CVE-2026-109619 معرفی شده بود. همین تنظیم اکنون برای کاهش خطر ناشی از مسیر جدید نیز توصیه میشود. با این حال، مشترک بودن یک راهکار موقت به این معنی نیست که دو آسیبپذیری یکسان هستند یا با یک وصله واحد برطرف میشوند.
در زمان انتشار اطلاعیه اولیه CVE-2026-115560، تیم PHP از انتشار اصلاحیه در چرخه عادی نسخههای رفع اشکال خبر داده بود. تا زمان ارائه نسخه اصلاحشده، غیرفعال کردن قابلیت ثبت پیشرفت بارگذاری فایلها و نصب وصلههای امنیتی موجود، مهمترین اقدامات پیشنهادی برای کاهش خطر هستند.
سوالات متداول
این آسیبپذیری به نحوه مدیریت نشستها و قابلیت ثبت پیشرفت بارگذاری فایلها در PHP مربوط است و در ترکیب خاصی از تنظیمات میتواند امکان اجرای کد از راه دور (RCE) را فراهم کند.
این دو مورد آسیبپذیریهای جداگانهای هستند. PHP2Shell به دو آسیبپذیری با شناسههای CVE-2026-109618 و CVE-2026-109619 اشاره دارد؛ اما CVE-2026-115560 مسیر آسیبپذیر دیگری است که به ترکیب خاصی از تنظیمات سریالسازی نشست و قابلیت Session Upload Progress نیاز دارد. بنابراین، نصب وصلههای PHP2Shell بهتنهایی آسیبپذیری جدید را برطرف نمیکند.
سرورهایی که PHP را اجرا میکنند، تنها در صورت وجود ترکیب مشخصی از تنظیمات و کد برنامه در معرض این مسیر آسیبپذیری قرار میگیرند. برنامه باید مقدار session.serialize_handler را در پیکربندی روی php_binary یا php_serialize تنظیم کند، سپس پیش از اجرای session_start() آن را در زمان اجرا به php تغییر دهد و قابلیت session.upload_progress نیز فعال باشد.
راهکار موقت اعلامشده از سوی تیم PHP، غیرفعال کردن قابلیت ثبت پیشرفت بارگذاری فایلها با تنظیم session.upload_progress.enabled=0 است. این تنظیم باید در پیکربندی سرور یا PHP-FPM اعمال شود و پس از آن، فرایندهای PHP مربوطه مجددا راهاندازی شوند. همچنین باید اطلاعیههای رسمی PHP را برای دریافت نسخه اصلاحشده دنبال کنید.
خیر. نسخههای اصلاحشده PHP2Shell برای رفع دو آسیبپذیری قبلی منتشر شدهاند و بهروزرسانی به آن نسخهها بهتنهایی برای رفع CVE-2026-115560 کافی نیست. تا زمان انتشار اصلاحیه مربوط به این مورد، راهکار موقت توصیهشده را اعمال کنید.
خیر. طبق اطلاعیه تیم PHP، این آسیبپذیری به ترکیبی غیرمعمول از تنظیمات و کد برنامه نیاز دارد. فعال بودن قابلیت بارگذاری فایل یا استفاده از PHP بهتنهایی به معنای آسیبپذیر بودن وبسایت نیست.
این تغییر معمولا مانع بارگذاری عادی فایلها نمیشود، اما ممکن است قابلیت نمایش میزان پیشرفت بارگذاری را در برنامههایی که از این ویژگی استفاده میکنند، غیرفعال کند. بهتر است پس از اعمال تنظیم، عملکرد بخشهای مربوط به بارگذاری فایل را بررسی کنید.






























شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.