در نسخههای 2.1.0 تا پیش از 2.2.0 فریمورک Dancer2 (مربوط به زبان Perl)، یک نقص امنیتی در مدیریت مسیرهای فایل (File route handler) شناسایی شده است که امکان دسترسی به فایلهای خارج از دایرکتوری عمومی (public_dir) را فراهم میکند.
تحلیل فنی نقص امنیتی
این آسیبپذیری زمانی رخ میدهد که Handler مربوطه، مسیر درخواست شده را بدون پاکسازی یا سادهسازی بخشهای نسبی (Relative segments)، به مسیر public_dir متصل میکند. در این فرآیند، سیستم تنها بررسی میکند که نتیجه نهایی یک فایل معمولی و قابل خواندن باشد. در نتیجه، مهاجم میتواند با ارسال درخواستهایی مانند /../outside.txt یا استفاده از Percent-encoding برای نقاط (dots)، از محدوده تعیین شده خارج شده و به فایلهای حساس سیستم دسترسی پیدا کند.
شرایط فعالسازی و اثرگذاری
لازم به ذکر است که این Handler به صورت پیشفرض غیرفعال است. یک اپلیکیشن تنها زمانی تحت تأثیر این آسیبپذیری قرار میگیرد که توسعهدهنده به طور دستی File را در route_handlers تعریف کرده و تنظیمات مربوطه را فعال نماید.
توصیه امنیتی
به مدیران سیستم و توسعهدهندگان توصیه میشود در سریعترین زمان ممکن، Dancer2 را به نسخه 2.2.0 یا نسخههای جدیدتر بهروزرسانی کنند تا این حفره امنیتی بسته شود.