پشت پردهٔ آسیبپذیریهای بحرانی RCE در PHP
خلاصهٔ کاملتر
Eric Barnes از Laravel News با Volker Dusch گفتگو کرده؛ کسی که تو Tideways کار میکنه و الان تو تیم Ecosystem Security بنیاد PHP مهندس امنیت هوش مصنوعیه. اون کنار تیم امنیت PHP روی رفع دو آسیبپذیری بحرانی RCE (یعنی اجرای کد دلخواه روی سرور از راه دور) کار کرده که این هفته براشون نسخهٔ امنیتی اومد.
داستان از برنامهٔ Patch the Planet شرکت OpenAI شروع شد. بنیاد PHP، خود PHP رو وارد این برنامه کرد و شرکت امنیتی Calif ممیزیش رو شروع کرد. کمی بعد Calif به فولکر ایمیل زد و درخواست جلسهٔ فوری داد. اونا یه exploit حداقلی داشتن که تو یه کانتینر Docker کار میکرد. بعدش OpenAI و Wiz هم مسیرهای حملهٔ دیگهای با همون ریشه گزارش دادن.
به گفتهٔ فولکر، پروژهٔ PHP فقط سورسکد منتشر میکنه، نه اون PHPیی که تو نصبش میکنی. پس پچ باید از Debian، Ubuntu، Red Hat، ایمیجهای رسمی Docker Hub و ایمیجهایی که روی اونا ساخته شدن رد بشه. چون باگ خیلی جدی بود، تیم برای نسخههایی که دیگه پشتیبانی نمیشن هم backport هماهنگ کرد. با WAFهایی (فایروالهای برنامهٔ وب) مثل Cloudflare هم کار کردن تا قبل از روز انتشار قانون بدن و سایتهایی که دیر آپدیت میکنن محافظت بشن.
توزیعکنندهها پچ رو زودتر گرفتن تا لحظهٔ اعلام عمومی آماده باشن، ولی Chainguard امبارگو رو شکست و بیش از شش ساعت زودتر ایمیجهای پچشده رو منتشر کرد. فولکر میگه امروز هر کسی میتونه از روی یه پچ یا حتی یه باینری خیلی سریعتر از قبل exploit بسازه. دربارهٔ اسکرینشاتهای exploit تو شبکههای اجتماعی هم گفت چندتایی که بررسی کرده فقط روی کانتینرهای دستکاریشده کار میکردن و روی ایمیج پیشفرض Docker Hub هیچ اثری نداشتن.
PHP امروز یه advisory تکمیلی هم داده و پیشنهاد کرده تا نسخهٔ bugfix بعدی، با تنظیم session.upload_progress.enabled=0 قابلیت upload progress توی session رو خاموش کنی. این همون راهکاری بود که تو advisory چهارشنبه هم بود، پس اگه اون موقع اعمالش کردی کار دیگهای لازم نیست. فولکر میگه شرایط این یکی خیلی خاصه و در مقایسه کماهمیته.
فولکر از Ilija، Arnaud و Jakub تشکر کرد که شب و روز تو کد C خود PHP کار کردن، چون اگه حتی یه جا از این الگوی باگ جا میموند یه نسخهٔ دیگه لازم میشد. این سه نفر تماموقت از بنیاد PHP حقوق میگیرن و برای همین تونستن همهچیز رو کنار بذارن. فولکر از شرکتهایی که با PHP پول درمیارن خواسته از بنیاد حمایت مالی کنن.
نکات کلیدی:
- دو آسیبپذیری RCE بحرانی تو PHP تو ممیزی Calif در برنامهٔ Patch the Planet شرکت OpenAI پیدا شد
- OpenAI و Wiz مسیرهای حملهٔ دیگهای با همون ریشه گزارش دادن
- Chainguard بیش از شش ساعت قبل از انتشار هماهنگشده ایمیج پچشده منتشر کرد
- راهکار موقت advisory تکمیلی: session.upload_progress.enabled=0 تا نسخهٔ bugfix بعدی
- برای نسخههای بدون پشتیبانی هم backport هماهنگ شد و WAFهایی مثل Cloudflare از قبل قانون گرفتن
- چند PoC پخششده تو شبکههای اجتماعی فقط روی کانتینرهای دستکاریشده کار میکردن




