در نسخههای ۲.۴.۴۹ و ۲.۴.۵۰ Apache HTTP Server، نقصی در تابع normalize مسیر وجود دارد که به مهاجم اجازه میدهد با استفاده از URL انکود شده و بد پیکربندی سرور (Require all granted روی cgi-bin)، به فایلهای سیستمی دسترسی یا حتی از RCE بهرهبرداری کند. این آسیبپذیری در ۵ اکتبر ۲۰۲۱ گزارش شد و فوراً exploitهایی منتشر شد
نسخه ۲.۴.۴۹ Apache تابع تغییر یافته در ap_normalize_path را معرفی کرد تا مسیرها را بر اساس RFC 1808 استاندارد کند. اما نقصی در پردازش URL-encoded و محل Decode باعث شد تنها نقطه اول پس از نقطهی رمزگذاریشده بررسی شود؛ در نتیجه الگوهای ../ میتوانند دور زده شوند .
این ضعف بهویژه در شرایطی خطرناک است که ماژول mod_cgi فعال باشد و دایرکتوری cgi-bin با تنظیم “Require all granted” برای عموم قابل دسترسی باشد. مهاجم میتواند به CGI دسترسی یافته و با استفاده از URL انکودشده، فراخوانی شل (shell) یا سایر فایلها خارجی را انجام دهد.
برای مثال:
curl http://target/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
باعث خواندن فایل /etc/passwd میشود، و با ارسال درخواست POST میتوان شل راهاندازی کرد .
بهرهبرداری از این مشکل ساده است—انبوه حملات خودکار دیده شدهاند: بیش از صدها هزار درخواست از سیطره جهانی برای خواندن فایلهای حساس مثل passwd و host . همچنین PoCهای اجرایی و آموزشی در GitHub و TryHackMe منتشر شدهاند .
برای رفع، Apache نسخه ۲.۴.۵۱ منتشر کرده که این آسیبپذیری را رفع یا فلکه کرده است. اگر نمیتوانید بروزرسانی انجام دهید، اطمینان از اعمال directiveهای strict در تمام دایرکتوریها، بهویژه cgi-bin ضروری است—پیکربندی تا DocumentRoot سطح پایه با Require all denied
تنظیم شود.
دیدگاهتان را بنویسید