افشای آسیبپذیری بحرانی در PHP و جزئیات سوءاستفاده از سیستم آپلود — PHP session.upload_progress heap UAF (CVE-2026-109618 / -109619)
خلاصه
یک آسیبپذیری خطرناک از نوع Use-After-Free در بخش مدیریت آپلود فایل PHP کشف و منتشر شده است. این نقص امنیتی به مهاجمان اجازه میدهد از طریق درخواستهای HTTP ساختیافته به اجرای کد بپردازند و تیمهای توسعه باید فوراً به فکر ایمنسازی سرورهای خود باشند.
مقدمه و زمینه فنی
جامعه توسعهدهندگان PHP اخیراً با انتشار گزارشی درباره یک آسیبپذیری جدید و جدی در هسته این زبان مواجه شده است. این مشکل حول محور مکانیزم session.upload_progress در PHP میچرخد و به یک نقص مدیریت حافظه از نوع Use-After-Free (UAF) مربوط میشود. برای تیمهای مهندسی نرمافزار که از PHP در محیطهای پرمصرف استفاده میکنند، درک این مکانیزم برای جلوگیری از حوادث امنیتی احتمالی حیاتی است.
جزئیات فنی آسیبپذیری
مشکل اصلی در فایل ext/session/session.c و تابع php_session_rfc1867_callback نهفته است. در اینجا، دو اشارهگر به سطلهای حافظه کششده (zval * bucket) برای متغیرهای مربوط به پیشرفت آپلود نگهداری میشوند. این اشارهگرها به آرایههایی اشاره میکنند که چرخه حیات درخواست آنها را آزاد میکند.
جزئیات کلیدی این نقص عبارتند از:
- رفتار پیشفرض: تنظیمات پیشفرض PHP برای فعال بودن این ویژگی (
session.upload_progress.enabled=1) برای آمادهسازی بستر حمله کافی است. - زنجیره رویدادها: ارسال یک درخواست چندبخشی (
multipart POST) سریع، کشها را آماده میکند. سپس درخواست دوم با بازخوانی فایل نشست (session) و فعالسازی تخریبگرهای جدول هش، ساختار قبلی را از بین میبرد. - سوءاستفاده از حافظه آزادشده: اشارهگر قدیمی به فضای آزادشده بازمیگردد و مهاجم میتواند ساختارهای کنترلی مانند
zend_call_functionیا دستوراتی معادلsystem()را اجرا کند.
این بررسیها روی نسخههای واقعی php-src (مانند نسخههای 8.4.4 و 8.2.34) و آفستهای ساختاری مرتبط اعتبارسنجی شده است.
راهکارهای کاهش ریسک و اصلاحیه
تا زمان انتشار رسمی بستههای اصلاحی پایدار، متخصصان پیشنهاد کردهاند که راهکارهای موقت زیر برای کاهش ریسک به کار گرفته شوند:
- بررسی موجودی نسخههای PHP: مطمئن شوید که نسخه دقیق مانیتورینگ روی تمام سرورها (
php -v) تحت کنترل است. - تنظیمات موقت در
php.ini: اعمال تغییرات جهت غیرفعالسازی یا محدودسازی بخشهای آسیبپذیر. - کنترل در لبه شبکه: اعمال محدودیت روی درخواستهای
multipart/form-dataدر لایه فایروال برنامههای وب (WAF) یا پروکسی معکوس.
حاشیهها و بحثهای جامعه Hacker News
در بحثهای شکلگرفته پیرامون این موضوع در هکرنیوز، نظرات متفاوتی مطرح شد. برخی کاربران به ابهام در نگارش متن گزارش انتقاد داشتند و برخی دیگر اشاره کردند که توسعهدهندگان اصلی PHP ممکن است ریشهیابی این مسئله را با جزئیات متفاوتی ارزیابی کنند. همچنین استفاده از ابزارهای کمکی هوش مصنوعی در تولید محتوای امنیتی بحثبرانگیز شده بود، با این حال اهمیت بهروزرسانی زیرساختها و استفاده از ابزارهایی نظیر SELinux برای لایههای دفاعی بیشتر مورد تأکید قرار گرفت.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل