PHP2Shell: بدون ورود به سیستم، بدون کد برنامه، بدون هشدار. بعدش چی؟
محتوای شریک: بیاموزید که چه عیوب وجود دارد، بهره برداری تا کجا پیش رفته است، و چگونه با Tanium به پوشش کامل سریع برسید
اگر PHP را در هر جایی از محیط خود اجرا می کنید، اکنون به PHP 8.5.12، 8.4.27، 8.3.36 یا 8.2.35 پچ کنید. دو نقص مهم هفته گذشته فاش شد، CVE-2026-109618 و CVE-2026-109619 (با نام مستعار "PHP2Shell")، به مهاجمی که احراز هویت نشده است اجازه می دهد تا کدی را روی سروری اجرا کند که چیزی بیش از یک درخواست وب ساخته شده نیست. هر دو دارای امتیاز CVSS v4.0 9.2 هستند، هر نسخه قبلی تحت تأثیر قرار می گیرد و بهره برداری در طبیعت گزارش شده است.
پچ قسمت آسان آن است. بخش سخت این است که هر کپی از PHP را پیدا کنید، زیرا PHP به ندرت در جایی که شما انتظارش را دارید نشان می دهد. این پست شامل مواردی است که نقصها چیست، بهرهبرداری تا کجا پیش رفته است و چگونه میتوان سریع به پوشش کامل رسید.
چه اتفاقی افتاد
جزئیات قبل از تحریم برنامه ریزی شده به بیرون درز پیدا کرد، بنابراین تیم امنیتی PHP به سرعت حرکت کرد و در عرض یک روز پس از اعلام آن، اصلاحات را ارسال کرد.
دو آسیب پذیری
هر دو باگ در هسته PHP زندگی می کنند، نه در هیچ چارچوب یا افزونه ای، بنابراین به هر چیزی که PHP را برای ارائه درخواست های وب اجرا می کند، می رسند.
تنظیمات سرور تحت تأثیر شامل PHP-FPM، mod_php، php-cgi، FrankenPHP و LiteSpeed هستند. PHP mod_php را به عنوان بالاترین ریسک رتبه بندی می کند. نیازی به ورود نیست: مهاجم فقط باید از طریق HTTP به یک نقطه پایانی PHP برسد.
نسخه های ثابت: 8.5.12، 8.4.27، 8.3.36 و 8.2.35. هر نسخه قبلی تحت تأثیر قرار می گیرد. PHP همچنین حداقل بکپورت های منبع را برای نسخه های 7.4، 8.0 و 8.1 منتشر کرده است، اما هیچ نسخه رسمی برای این شاخه ها وجود ندارد. یک backport را به عنوان یک توقف در نظر بگیرید و برای ارتقا برنامه ریزی کنید.
آیا مورد بهره برداری قرار می گیرد؟
بله، اگرچه بهره برداری های عمومی قابل اعتماد هنوز کمیاب است. WatchTowr از 21 اکتبر گزارش بهره برداری در شبکه هانی پات خود را گزارش می دهد و Tenable به مدیر ارشد فناوری Cloudflare می گوید که Cloudflare شاهد حملات اولیه است. سایر تلهمتریها، مانند Patchstack، تا کنون بیشتر در حال کاوش هستند. هیچ یک از CVE هنوز در کاتالوگ KEV CISA وجود ندارد و هیچ شاخص عمومی مصالحه منتشر نشده است.
اینکه چقدر اسلحه سازی باگ سخت است به پلتفرم بستگی دارد. VulnCheck هر دو نقص را بازتولید کرد و یافت:
اجرای کد روی ARM64 و در سیستمهای x86 که تصادفیسازی طرحبندی فضای آدرس (ASLR) خاموش است، کار میکند.
ده ها اثبات عمومی وجود دارد، اما تعداد بسیار کمی کار می کنند و هیچ کدام ASLR را در x86-64 دور نمی زنند.
Red Hat نیز RCE را در اجراهای پیشفرض PHP-FPM سخت ارزیابی میکند.
آن را به عنوان اجازه صبر نخوانید. پس از عمومی شدن یک تفاوت وصله، اکسپلویت ها به سرعت بالغ می شوند، و مخازن PoC جعلی برای CVE های سرفصل اغلب دارای بدافزار هستند، بنابراین با هر کدام که پیدا می کنید با احتیاط رفتار کنید. تحقیقات Tanium در مورد بهرهبرداری در چرا PHP2Shell واقعی است (در یک برگه جدید باز میشود).
بیشتر در معرض خطر: برنامه های PHP با اینترنت، به ویژه آنهایی که mod_php یا هاست های ARM64 را اجرا می کنند. همچنین ارزش بررسی گزارشهای اخیر وب سرور و PHP-FPM را برای خرابیهای غیرقابل توضیح کارگران و درخواستهای چند بخشی غیرمعمول دارد.
چرا یافتن PHP سخت تر از آن چیزی است که به نظر می رسد
هیچ کس لیست کاملی از برنامه های کاربردی مبتنی بر PHP ندارد و هر چیزی که به صورت سفارشی ساخته شده باشد در هیچ لیستی قرار نخواهد گرفت. PHP در چندین مکان به طور همزمان پنهان می شود:
بسته های سیستم عامل در لینوکس (php، php-fpm، php8.x)، که مدیران بسته و اکثر ابزارهای موجودی آن را می بینند.
Homebrew و موارد مشابه در macOS، خارج از لیست بسته های خود سیستم.
کپی های همراه در ویندوز. PHP در ویندوز معمولا به صورت یک فایل فشرده در یک پوشه یا داخل پشته ای مانند XAMPP، WampServer، Laragon یا یک محصول فروشنده استخراج می شود. اغلب هرگز به عنوان یک برنامه نصب شده ثبت نمی شود.
برنامههایی که PHP خود را ارسال میکنند، که رفع آن به جای سیستمعامل به فروشنده برنامه بستگی دارد.
ظروف، جایی که نسخه در تگ تصویر پخته می شود.
PHP اغلب بیشتر از آنچه تیم ها انتظار دارند گسترده است و فقط روی سرورها اجرا نمی شود. ابزارهای توسعهدهنده، پشتههای وب محلی و برنامههای همراه آن را در ایستگاههای کاری نیز قرار میدهند، اغلب بدون ثبت نام به عنوان یک برنامه نصبشده.
پاسخ قابل اعتماد این است که به خود باینری ها نگاه کنید. در آزمایش، بیلدهای PHP از نسخه 5 تا 8 همگی رشته نسخه خود (X-Powered-By: PHP/x.y.z) را تعبیه می کنند، بنابراین می توانید نسخه دقیق را مستقیما از فایل بدون اجرای آن بخوانید.
چگونه تانیوم کمک می کند
خود تانیوم تحت تأثیر قرار نمی گیرد. Tanium از PHP استفاده نمی کند، بنابراین هیچ تاثیری بر نرم افزار Tanium یا سرویس های Tanium Cloud ندارد.
محتوای Tanium Guardian برای PHP2Shell اکنون در Tanium Cloud در دسترس است. داشبورد محل نصب و اجرای PHP را نشان میدهد تا بتوانید وصلهها را اولویتبندی کنید، با تعداد نقاط پایانی در سراسر ناوگان با PHP آسیبپذیر در لینوکس، ویندوز و macOS. ترکیب می کند:
برنامه های نصب شده موجود و سنسورهای Homebrew Applications که PHP را از طریق مدیران بسته در macOS و Linux نصب شده پیدا می کنند.
یک حسگر Windows PHP Installations که PHP را در جایی که برنامههای نصب شده نمیتوانند ببینند، از جمله IIS، XAMPP، WampServer، Laragon، مدیریت بستهها و کپیهای استخراجشده دستی پیدا میکند و نسخه، نوع نصب، مسیر نصب و کاربر مالک را گزارش میکند. نسخه از فراداده فایل باینری بدون اجرای آن خوانده می شود.
یک سوال ذخیره شده از پیش ساخته شده که فرآیندهای در حال اجرا PHP را فهرست می کند تا بتوانید سیستم هایی را که ممکن است به ترافیک سرویس می دهند اولویت بندی کنید.
یک سوال ذخیره شده از پیش ساخته شده که کانتینرهای PHP، کانتینرهای در حال اجرا را با php، FrankenPHP و حدود 25 تصویر رایج مبتنی بر PHP مانند WordPress، Drupal، Joomla، Nextcloud و Magento مطابقت می دهد. به بارهای کاری Tanium Cloud نیاز دارد.
Tanium Comply PHP را روی دیسک پیدا می کند. برای مشتریان دارای مجوز برای Comply، داشبورد شامل یافتههای PHP2Shell بر اساس نقطه پایانی، جزئیات یافتن کامل و یک روند ۷ روزه است، با محوریت صفحه یافتههای Comply که روی دو CVE فیلتر شده است. گزارش جزئیات یافتن مکانهای خاص روی دیسک را نشان میدهد که PHP در آن یافت شده است، که کپیهایی را میگیرد که موجودیهای بسته و رجیستری از دست رفته است. تعاریف کتابخانه آسیبپذیری برای ویندوز، لینوکس و macOS در حال حاضر فعال هستند - TVL را همگامسازی کنید و ارزیابی را برای انتخاب آنها اجرا کنید.
مشتریان داخلی می توانند محتوای Guardian را امروز به صورت دستی وارد کنند. مراحل و دانلودها در محتوای Guardian برای مشتریان داخلی (در یک برگه جدید باز می شود) در مرکز راهنمایی Tanium هستند.
بدانید چه چیزی در معرض اینترنت است. بر اساس گزارش Censys Internet Intelligence، بیش از 13 میلیون دارایی اینترنت، نسخههای PHP را اجرا میکنند که ممکن است تحت تأثیر قرار گیرند. Tanium External Attack Surface Management (EASM) دارایی های مرتبط با اینترنت مرتبط با سازمان شما را کشف می کند و خدمات PHP، نسخه ها و ویژگی های وب را در میان آنها شناسایی می کند، با این CVE ها که از طریق پوشش آسیب پذیری های قابل بهره برداری و تسلیحاتی ظاهر شده اند.
نقشهبرداری مسیر حمله Tanium سپس نشان میدهد که کدام یک از آن داراییهای در معرض یک نقطه نوردهی با یک نمونه ابری، نقش یا هویت ممتاز دارند: مکانهایی که یک سرور PHP مورد سوء استفاده قرار میگیرد مسیری عمیقتر به محیط شما میشود.
قبلا از Tanium SBOM استفاده می کنید؟ فهرستبندی نسخههای PHP یک مرحله اولیه است. این نشان می دهد که کدام برنامه ها دارای PHP آسیب پذیر هستند و نیاز به به روز رسانی فروشنده دارند.
حالا چه باید کرد
به ترتیب از طریق اینها کار کنید. سه مورد اول امروز بیشترین اهمیت را دارند.
هر نصب PHP را پیدا کنید، از جمله نسخه های ویندوزی که هرگز به عنوان برنامه ثبت نشده اند. نسخه دقیق هر کدام را ثبت کنید.
رتبه بندی بر اساس قرار گرفتن در معرض. سرورهای اینترنت، تنظیمات mod_php و میزبان های ARM64 در اولویت قرار دارند.
وصله به 8.5.12، 8.4.27، 8.3.36 یا 8.2.35 از طریق فروشنده سیستم عامل خود، ساخت php.net یا فروشنده برنامه شما. PHP-FPM و کارگران وب سرور را راه اندازی مجدد کنید تا باینری جدید بارگیری شود.
اگر هنوز نمی توانید وصله کنید، همانطور که CERT-EU توصیه می کند، برنامه های PHP رو به اینترنت را در جایی که می توانید ایزوله کنید و قوانین WAF یا IDS را در مقابل آنها قرار دهید (Cloudflare و VulnCheck هر دو قوانین ارسالی برای بردارهای شناخته شده دارند).
تنظیم جزئی را با احتیاط اعمال کنید. session.upload_progress.enabled=0 یک مسیر نشان داده شده را فقط برای CVE-2026-109619 مسدود می کند و برای CVE-2026-109618 کاری انجام نمی دهد. باید در php.ini، یک استخر FPM یا پیکربندی سرور، و به دنبال راه اندازی مجدد کارگر تنظیم شود. ini_set() و .user.ini آن را اعمال نمی کنند.
شکار. گزارشهای اخیر وب سرور و PHP-FPM را برای خرابیهای کارگر و آپلودهای چند قسمتی نادرست مرور کنید.
برای پایان عمر PHP برنامه ریزی کنید. هر چیزی در نسخه 8.1 یا بالاتر هیچ نسخه رسمی ثابتی ندارد.
جایی که بسته های ثابت ایستاده اند (از 21 اکتبر، 16:30 UTC)
بستههای Distro هنوز در حال انتشار هستند، بنابراین قبل از اینکه فرض کنید راه حلی در دسترس است، فروشنده خود را بررسی کنید.
مخزن Remi امروز بهروزرسانیها را ارسال نمیکند، بنابراین PHP توصیه میکند اگر به آن وابسته هستید، به بستههای توزیع یا ساختن از منبع تغییر دهید.
عرضه شده توسط تانیوم
متن اصلی (انگلیسی)
PHP2Shell: No login, no app code, no warning. What next?
PARTNER CONTENT: Learn what the flaws are, how far exploitation has gone, and how to get to full coverage fast with Tanium