PHP2Shell: دو نقص حیاتی PHP، افشای یک ممنوعیت، و آنچه واقعاً درباره بهرهبرداری از آن شناخته شده است
PHP رفعکنندههای اضطراری برای دو نقص اجرای کد از راه دور حیاتی، CVE-2026-109618 و CVE-2026-109619، به نام PHP2Shell منتشر کرد.
PHP رفعکنندههای اضطراری برای دو نقص اجرای کد از راه دور حیاتی، CVE-2026-109618 و CVE-2026-109619، به نام PHP2Shell منتشر کرد. این انتشار در تاریخ 21 اکتبر 2026 انجام شد. این قسمت دو اشکال حافظه را به زبان ساده توضیح میدهد، اینکه چرا سرنخی از ممیزی سال 2024 منتظر رفع بود، چگونه تحریم فاش شد و کدام منابع درباره بهرهبرداری چه میگویند. همچنین به انتشار پچ حیاتی GitLab در همان روز و دستور جریمه 25 میلیارد دلاری متا در نیومکزیکو میپردازد.
نسخه نوشتاری را بخوانید (انگلیسی) ↗
این ویدیو چه مواردی را پوشش میدهد
- هر دو نقص توسط تیم PHP با امتیاز 9.2 در CVSS v4.0 ارزیابی شدهاند. نسخههای اصلاح شده عبارتند از PHP 8.2.35, 8.3.36, 8.4.27 و 8.5.12؛ PHP 7.4, 8.0 و 8.1 فقط پچهای منبع را دریافت کردند. PHP میگوید بهروزرسانی تنها راه حل کامل است.
- نقص اول از این ناشی میشود که PHP یک درخواست را در زمانی که حافظه آن در لحظه اشتباهی تمام میشود، نیمهکاره رها میکند. دومی از یک اشارهگر باقیمانده به حافظه یک درخواست که درخواست بعدی در همان Worker میتواند از آن استفاده کند، ناشی میشود. در آپاچی با mod_php، مسیر اول قبل از کد برنامه اجرا میشود.
- یک توسعهدهنده اصلی PHP اولین نشانههای مشکل حافظه را در طول یک ممیزی در سال 2024 پیدا کرد. بنیاد PHP میگوید اصلاحات رقابتی دارای مبادلات بودند و یک تیم امنیتی مبتنی بر اجماع برای انتخاب مشکل داشت که آن را یک شکست ساختاری مینامند.
- بنیاد میگوید شناسههای CVE در 20 اکتبر لو رفت، Calif به اشتباه یک ویدئوی اثبات مفهوم را منتشر کرد، و Chainguard تصاویر ساخته شده با اصلاح را بیش از شش ساعت قبل از انتشار منتشر کرد. مدیرعامل Chainguard میگوید مردم قبلاً مورد حمله قرار گرفته بودند و او به طور مستقل این باگها را پیدا کرده است.
- منابع در مورد بهرهبرداری اختلاف نظر دارند. آمازون یک تلاش را در 17 اکتبر ثبت کرد و بعداً گفت PHP2Shell به طور گسترده مورد بهرهبرداری قرار گرفته است. watchTowr بهرهبرداری در طبیعت را گزارش داد. CISA در زمان انتشار، بهرهبرداری را مشاهده نکرده بود، و تیم PHP هیچ اکسپلویت کارآمدی را در زمان انتشار پیدا نکرد. بسیاری از اسکریپتهای اثبات مفهوم عمومی گزارش شده است که کار نمیکنند.
- هر مکانی که PHP اجرا میشود، از جمله نسخههایی که در نرمافزارهای دیگر پنهان شدهاند، را بررسی کنید، بهروزرسانی کنید، کارگرها را راهاندازی مجدد کنید و گزارشها را تا 17 اکتبر بررسی کنید.
سوالات متداول
دو آسیبپذیری PHP2Shell کدامند؟
PHP2Shell نام دو نقص حیاتی PHP را میبرد، CVE-2026-109618 و CVE-2026-109619، هر دو توسط تیم PHP با امتیاز 9.2 ارزیابی شدهاند. اولی در زمانی که PHP در لحظه اشتباهی حافظهاش تمام میشود، یک درخواست را نیمهکاره رها میکند، و سپس پاکسازی به آن اعتماد میکند. دومی یک اشارهگر به حافظه یک درخواست را باقی میگذارد که یک درخواست بعدی در همان worker میتواند از آن استفاده کند. هر دو میتوانند منجر به اجرای کد بدون ورود به سیستم شوند.
کدام نسخههای PHP دارای اصلاح برای PHP2Shell هستند، و نسخههای پشتیبانی نشده چطور؟
پروژه PHP اصلاحات را در نسخههای 8.2.35, 8.3.36, 8.4.27 و 8.5.12 در 21 اکتبر منتشر کرد. برای 7.4, 8.0 و 8.1 فقط پچهای منبع را منتشر کرد، و BleepingComputer گزارش میدهد که توزیعها و فروشندگان پشتیبانی بلندمدت ممکن است پچهای backported را ارائه دهند. PHP میگوید هیچ راهحل کامل وجود ندارد، بنابراین بهروزرسانی یا درخواست یک بسته پچ شده از یک فروشنده تنها انتخاب ایمن است.
چرا یک باگ حافظه شناخته شده PHP تا اکتبر 2026 برای اصلاح زمان برد؟
بنیاد PHP میگوید یک توسعهدهنده اصلی اولین نشانههای مشکل حافظه را در طول یک ممیزی امنیتی سال 2024 پیدا کرد، اما هیچ مسیر بهرهبرداری شناخته شدهای وجود نداشت و هر اصلاح کاندید دارای مبادلاتی مانند شکستهای سازگاری بود. تیم امنیتی با اجماع تصمیم میگیرد و برای انتخاب مشکل داشت که بنیاد آن را یک شکست ساختاری ناشی از فرآیند تصمیمگیری و کمبود منابع مینامد.
آیا PHP2Shell مورد بهرهبرداری قرار گرفته است، و بهرهبرداری از آن چقدر آسان است؟
منابع اختلاف نظر دارند. آمازون یک تلاش بهرهبرداری را در 17 اکتبر ثبت کرد و بعداً گفت PHP2Shell به طور گسترده مورد بهرهبرداری قرار گرفته است، و watchTowr بهرهبرداری در طبیعت را گزارش داد. CISA در زمان انتشار، بهرهبرداری را مشاهده نکرده بود، و تیم PHP در زمان انتشار هیچ اکسپلویت کارآمدی را مشاهده نکرد. watchTowr میگوید بیشتر اسکریپتهای بهرهبرداری عمومی از کار میافتند یا هیچ کاری نمیکنند، و VulnCheck دریافت که اجرای کد فقط در برخی تنظیمات کار میکند.
حکم The Daily Diff در مورد PHP2Shell چه بود؟
حکم The Daily Diff این بود: SHIP IT: بهروزرسانی PHP را امشب ارسال کنید، زیرا نسخه جدید تنها راه حل کامل است. CISA میگوید هر سیستمی که PHP را اجرا میکند، از جمله نسخههایی که در نرمافزارهای دیگر پنهان شدهاند، را موجودیبرداری کنید، پچ را اعمال کنید، و اگر سیستمهای PHP نمیتوانند بهروزرسانی شوند، آنها را آفلاین کنید. آمازون توصیه میکند گزارشها را تا 17 اکتبر، زمانی که اولین تلاش را مشاهده کرد، بررسی کنید.
رونوشت ترجمه شده
ترجمه شده از روایت اصلی انگلیسی. صوت و زیرنویسهای موجود توسط YouTube کنترل میشوند.
چه کسی PHP2Shell را چهار روز زودتر امتحان کرد؟
0:00 یک ممنوعیت امنیتی قرار است یک باگ را تا زمانی که پچ منتشر شود، ساکت نگه دارد. آمازون یک تلاش علیه باگ حیاتی PHP را چهار روز زودتر ثبت کرد. در این ویدئو، چه کسی آن را پیدا کرد؟ چگونه ممنوعیت لو رفت؟ و واقعاً چقدر بد است؟ و شرکتی که به خاطر این افشا مقصر شناخته شد، دفاعی داشت که انتظارش را نداشتم. به آن خواهم پرداخت. پنجشنبه، بیست و دوم اکتبر است، و این The Daily Diff است.
0:21 PHP یک زبان برنامهنویسی است که صفحات وب را روی سرور درست قبل از رسیدن به شما میسازد. این زبان بیش از سی سال قدمت دارد و طبق یک تخمین، حدود هفتاد درصد وبسایتها، از جمله وردپرس و نرمافزار پشت ویکیپدیا را اجرا میکند. توسعهدهندگان دوست دارند آن را مسخره کنند، معمولاً از صفحهای که PHP به آنها ارائه میدهد. نگهداری آن یک سازمان غیرانتفاعی با حدود سیزده مهندس است. چهارشنبه، PHP اصلاحات اضطراری را برای دو نقص حیاتی که به یک غریبه اجازه میدهد بدون ورود به سرور کد اجرا کند، منتشر کرد.
دو باگ PHP2Shell چه هستند؟
0:41 آنها با هم PHP2Shell نامیده میشوند و به PHP پنج نقطه چهار بازمیگردند. اینجا اولین باگ به زبان ساده است. PHP به هر درخواست یک بودجه حافظه میدهد. اگر یک درخواست در لحظه دقیقاً اشتباه به آن حد برسد، PHP با عجله خارج میشود و درخواست را نیمهکاره رها میکند. سپس مرحله پاکسازی به آن چیز نیمهکاره اعتماد میکند. باگ دوم یک باقیمانده است. یک خطای مهلک میتواند یادداشتی را باقی بگذارد که به حافظهای اشاره دارد که متعلق به درخواست قبلی بود.
1:07 همان worker درخواست بعدی را مدیریت میکند و یادداشت را دنبال میکند. در آن زمان شخص دیگری در آن آدرس زندگی میکند. در آپاچی با mod PHP، آسیب قبل از اجرای کد شما اتفاق میافتد، بنابراین صفحه ورود شما هرگز رأی نمیگیرد. Wiz میگوید حتی یک اسکریپت hello world نیز آسیبپذیر است. این اصلاح خروج اضطراری PHP را برای تمام شدن حافظه حذف میکند. به جای اینکه در میان درخواست خارج شود، PHP اکنون با ادب در نقطه امن بعدی متوقف میشود. قسمت عجیب این است که اولین سرنخ چقدر قدیمی است. در سال 2024، یک ممیزی امنیتی خارجی یک توسعهدهنده اصلی PHP را به اولین نشانههای مشکل حافظه هدایت کرد.
1:32 هیچ اکسپلویت شناخته شدهای وجود نداشت و هر اصلاحی چیزی را خراب میکرد. تیمی که با اجماع تصمیم میگیرد نمیتوانست انتخاب کند، بنابراین باگ منتظر ماند.
چرا یک باگ شناخته شده دو سال منتظر ماند؟
1:39 سپس در آگوست، یابندگان در عرض چند روز رسیدند. رایان آستین، محقق Calif، آن را در اول آگوست، با کار از طریق برنامه Patch the Planet اوپناِیآی پیدا کرد. اوپناِیآی همان علت ریشهای را به طور مستقل گزارش کرد. Wiz چند هفته بعد با مدلهای Gemini و GPT، انواع آن را پیدا کرد. آستین میگوید او از مدلهایی استفاده کرده است که هر کسی میتواند به آنها دسترسی پیدا کند، به علاوه یک نظریه در مورد اینکه باگهای قدیمی PHP کجا پنهان میشوند.
چه کسی PHP2Shell را پیدا کرد و چگونه؟
1:56 اوپناِیآی میگوید هوش مصنوعی پیشرو کلید بود. این باگ بیش از یک دهه پنهان مانده بود. انتشار برای پنجشنبه برنامهریزی شده بود. سهشنبه، دو شماره CVE آنلاین شروع به گردش کردند، با زمان انتشار اشتباه و نمره اشتباه ده. PHP انتشار را یک روز جلوتر کشید. آن شب، Calif به طور تصادفی یک ویدئو از اثبات مفهوم خود را در حال کار منتشر کرد، و نسخهها پس از حذف باقی ماندند. چهارشنبه صبح، بیش از شش ساعت قبل از انتشار، Chainguard تصاویر ساخته شده حاوی اصلاح را منتشر کرد. PHP میگوید هر مهاجمی میتوانست آن اصلاح را در حالی که همه منتظر بودند مطالعه کند.
چگونه ممنوعیت PHP2Shell لو رفت؟
2:21 یک پچ نیز یک diff است، و مهاجمان diff ها را میخوانند. پس واقعاً چه کسی مورد حمله قرار گرفته است؟ هانیپات آمازون یک تلاش را در هفدهم اکتبر ثبت کرد و بعداً گفت PHP2Shell به طور گسترده مورد بهرهبرداری قرار گرفته است. watchTowr بهرهبرداری در طبیعت را گزارش میدهد. Cisa گفت در زمان انتشار هیچ چیز را مشاهده نکرده است، و تیم PHP در زمان انتشار هیچ اکسپلویت کارآمدی را مشاهده نکرد. مدیرعامل Cloudflare گفت هزاران تلاش را در ده ساعت قبل از اعلام، و میلیونها را تا صبح پنجشنبه مشاهده کرده است. آمازون در یک نکته محتاط است. نمیداند که آیا اولین تلاشهایش روی یک سیستم واقعی کار میکرد یا خیر. یک تلاش فقط یک ضربه به در است.
2:46 پس واقعاً چقدر بد است؟
آیا PHP2Shell مورد بهرهبرداری قرار گرفته است و توسط چه کسی؟
2:50 watchTowr میگوید اکسپلویتهای عمومی که در حال چرخش هستند، بیشتر از کار میافتند یا هیچ کاری نمیکنند. VulnCheck میگوید اجرای کد در برخی تنظیمات کار میکند، و هیچ یک از موارد عمومی، تصادفیسازی حافظه را در سرورهای استاندارد x86 شکست نمیدهند. محقق الیاس تیلور میگوید به هیچ وجه به آسانی Log4Shell نیست. همه هنوز میگویند پچ کنید. دولتها منتظر حکم نماندند. NSA به سازمانهایی که نمیتوانستند پچ کنند گفت سیستمهای PHP را آفلاین کنند، و مرکز ملی امنیت سایبری بریتانیا نیز توصیه مشابهی ارائه داد. سایتهای هلندی، از جمله سرویس هویت دیجیتال ملی، همراه با یک سایت پلیس پاریس، آفلاین شدند. ویکیمدیا چندین سیستم را به عنوان یک اقدام احتیاطی از دسترس خارج کرد.
3:13 پالو آلتو نتورکس بیش از بیست و دو میلیون نمونه در معرض خطر را شمارش کرد. و یک استاد استرالیایی دقیقترین نکته را مطرح کرد. سایتهایی که باید نگران آنها بود، سایتهایی هستند که امروز آفلاین نیستند. اصلاحات برای PHP هشت نقطه دو تا هشت نقطه پنج وجود دارد. برای هفت نقطه چهار، هشت نقطه اوه و هشت نقطه یک، PHP فقط پچهای منبع را منتشر کرد. نسخههای قدیمیتر هیچ چیز از پروژه PHP دریافت نمیکنند، بنابراین از توزیع خود بپرسید. راهحلهای موقت احتمال را کاهش میدهند، اما PHP میگوید بهروزرسانی تنها راه حل کامل است. این همان درسی است که از قسمت eMudhra دیروز گرفتیم، زیرا وجود یک اصلاح به معنای داشتن آن توسط فرآیند در حال اجرا نیست.
3:40 هر PHP را در پشته خود پیدا کنید، حتی نسخههایی که در نرمافزارهای دیگر پنهان شدهاند. بهروزرسانی کنید، worker ها را راهاندازی مجدد کنید و گزارشها را تا هفدهم اکتبر بررسی کنید.
دولتها چه چیزی را آفلاین کردند؟
3:44 همان روز، GitLab یک انتشار پچ حیاتی، نوزده نقطه پنج نقطه یک را منتشر کرد. یک سرریز عدد صحیح در کامپایلر عبارت منظم آن به یک کاربر بدون احراز هویت اجازه میدهد کد را روی سرور اجرا کند، و امتیاز ده از ده را میگیرد. GitLab.com قبلاً پچ شده است. نصبهای خودمدیریتی به بهروزرسانی نیاز دارند. در همین حال در نیومکزیکو، یک قاضی به متا دستور داد تا بیست و پنج میلیارد دلار جریمه به دلیل کمبریج آنالیتیکا بپردازد. هیئت منصفه بیش از چهل و سه میلیون تخلف را با حداکثر پنج هزار دلار برای هر کدام شمارش کرد که قبل از اینکه قاضی آن را کاهش دهد، حدود دویست و بیست میلیارد میشد. متا میگوید در تجدیدنظر پیروز خواهد شد. حالا دفاعی که قولش را دادم.
کدام نسخههای PHP اصلاح میشوند؟
4:11 مدیرعامل Chainguard به The Register گفت که او خودش همین باگها را در یک جمعه شب، پس از فهمیدن اینکه چیزی در PHP در راه است، با یک فرمان ساده برای یافتن آسیبپذیریهای بد پیدا کرده است. او میگوید که زودتر منتشر کرده است زیرا مردم قبلاً مورد حمله قرار میگرفتند. اگر ترجیح میدهید این را بخوانید تا اینکه من آن را بگویم، diff هر روز صبح رایگان به صندوق ورودی شما میرسد در thedailydiff.dev، پیوند زیر. پس حکم امروز SHIP IT است. بهروزرسانی PHP را امشب ارسال کنید، زیرا شماره نسخه جدید تنها راه حل کامل است. و این diff امروز است. من نیکو از Axrisi هستم.
امشب با PHP2Shell چه میکنید؟
4:32 مسئولانه ادغام کنید. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff.
امروز چه چیز دیگری یک پچ RCE حیاتی منتشر کرد؟
4:47 پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff.
چرا متا به پرداخت 25 میلیارد دلار محکوم شد؟
5:01 پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff.
دفاع Chainguard برای اصلاح زودهنگام چیست؟
5:19 پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff.
چه چیزی نشان SHIP IT را میگیرد؟
5:39 پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff. پایان The Daily Diff.
منابع
- Today's PHP Security Release, and How We're Strengthening PHP SecurityThe PHP Foundation
- RCE via OOM corruption (GHSA-w8hw-w9fx-j79w)PHP security advisory
- RCE via stale global state (GHSA-6wmf-4rv5-p3rp)PHP security advisory
- Upcoming Critical PHP Security Releasephp.net
- php2shellCalif
- PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the InternetWiz Research
- Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPotAWS Security Blog
- Critical Vulnerabilities in PHP Require Immediate PatchingCISA
- Flaw in PHP computer language leads to shutdown of websites around worldThe Guardian
- What is PHP, and how bad is the computer language flaw causing website shutdowns globally?The Guardian
- PHP2Shell Exploitation Started Days Before PatchesSecurityWeek
- PHP2Shell: Responding to CVE-2026-109618 and CVE-2026-109619Tanium
- There isn't an easy exploit for this PHP vulnerabilityElias Taylor
- PHP blames supply chain security biz Chainguard for putting entire web at riskThe Register
- PHP2Shell: 22M exposed servers at risk as emergency patches releasedTechTarget
- PHP ships emergency patches for critical PHP2Shell flawsBleepingComputer
- GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13GitLab
- Meta ordered to pay $25 billion penalty in New Mexico Cambridge Analytica caseCNBC
- Tell HN: 2x PHP RCE CVEs with CVSS 10.0 IncomingHacker News



