در نسخههای پیش از 2.2.0 از فریمورک Dancer2 برای زبان Perl، یک نقص امنیتی شناسایی شده است که به مهاجم اجازه میدهد با استفاده از روشهای خاص در نامگذاری مسیرها، محدودیتهای حفاظتی (Guard) را دور زده و به صفحاتی دسترسی پیدا کنند که باید توسط هندلر AutoPage مدیریت شوند.
تحلیل فنی نقص امنیتی
این مشکل زمانی رخ میدهد که هندلر AutoPage مسیر درخواست شده را با نام دایرکتوری Layout به صورت متنی (Textual Comparison) مقایسه میکند. با این حال، در مرحله جستجوی بعدی (Lookup)، مسیر مورد نظر Canonicalise شده یا به فرمت استاندارد تبدیل میشود. این تفاوت در نحوه پردازش مسیر، منجر به ایجاد یک شکاف امنیتی میشود.
روشهای بهرهبرداری (Exploitation)
مهاجمان میتوانند با استفاده از تکنیکهای زیر، مکانیزم بررسی مسیر را دور بزنند:
- استفاده از اسلشهای دوگانه (Doubled Slashes)
- بهکارگیری بخشهای نقطهای (Dot Segments) مانند
.. - استفاده از اسلشهای کدگذاری شده (Percent-encoded Slashes)
- تغییر در حروف بزرگ و کوچک (Capitalization) در سیستمفایلهایی که به کوچک یا بزرگ بودن حروف حساس نیستند (Case-insensitive Filesystems)
در چنین شرایطی، هندلر AutoPage نمیتواند تطابق مسیر را تشخیص دهد و در نتیجه Guard مربوطه اجرا نمیشود و محتوای Layout به عنوان یک صفحه مستقل سرو میشود.
وضعیت پیشفرض و توصیهها
لازم به ذکر است که قابلیت AutoPage به صورت پیشفرض غیرفعال است و تنها در صورتی که گزینه auto_page فعال شده باشد، این آسیبپذیری فعال میگردد. به مدیران سیستم و توسعهدهندگان توصیه میشود هرچه سریعتر Dancer2 را به نسخه 2.2.0 یا نسخههای جدیدتر بهروزرسانی کنند تا این نقص امنیتی برطرف شود.