یک آسیبپذیری امنیتی در نحوه مدیریت مسیرهای فایل در زبان برنامهنویسی PHP شناسایی شده است که کاربران ویندوز را تحت تأثیر قرار میدهد. این مشکل در APIهای مربوط به سیستم فایل (Filesystem) و استریمهای (Stream) PHP ریشه دارد.
جزئیات فنی آسیبپذیری
در سیستمعامل ویندوز، برخی نامهای دستگاهها (Device Names) رزرو شدهاند و نباید به عنوان نام فایل استفاده شوند. این نامها شامل مواردی نظیر CON، PRN، AUX، NUL، COM1 تا COM9 و LPT1 تا LPT9 هستند. طبق گزارشهای فنی، PHP در نسخههای آسیبپذیر، این نامهای رزرو شده را در مسیرهای فایل رد نمیکند.
سناریوی حمله و اثرات
زمانی که یک عامل تهدید (Threat Actor) بتواند نام فایل ورودی را کنترل کند، میتواند از این نقص برای ارسال درخواستهایی استفاده کند که به جای باز کردن یک فایل معمولی، یک دستگاه رزرو شده را از طریق تابع CreateFileW() در ویندوز فراخوانی کنند. این اتفاق منجر به نتایج زیر میشود:
- Hanging Request: متوقف شدن یا معلق ماندن درخواست کاربر.
- Resource Exhaustion: مصرف بیش از حد منابع سیستم و اشغال تمامی Worker Processها.
- Denial of Service (DoS): در نهایت، این وضعیت منجر به از دسترس خارج شدن کامل اپلیکیشن برای سایر کاربران میگردد.