یک آسیبپذیری امنیتی در متد UrlUtil.getBaseUrl شناسایی شده است که نحوه ساخت URLهای مطلق (Absolute URLs) در پاسخهای سرور را هدف قرار میدهد. این متد برای تولید لینکهای دانلود، آیکونها، آدرسهای API و سایر داراییها (Assets)، از مقادیر موجود در Headerهای درخواست استفاده میکند.
جزئیات فنی آسیبپذیری
مشکل اصلی در این است که سیستم برای استخراج اطلاعات مورد نیاز، به ترتیب از Headerهای X-Forwarded-Host، X-Forwarded-Proto و X-Forwarded-Prefix استفاده میکند، بدون اینکه بررسی کند آیا درخواست از سوی یک Proxy مورد اعتماد ارسال شده است یا خیر. در صورتی که این Headerها موجود نباشند، سیستم به طور خودکار از Header استاندارد Host که توسط کلاینت ارسال شده، استفاده میکند.
پیامدهای امنیتی
این نقص امنیتی میتواند منجر به حملات Host Header Injection شود. مهاجمان میتوانند با ارسال مقادیر مخرب در Headerهای مذکور، سرور را فریب دهند تا لینکهایی به دامنههای تحت کنترل مهاجم ایجاد کند. این موضوع میتواند در سناریوهای زیر مورد سوءاستفاده قرار گیرد:
- Password Reset Poisoning: هدایت کاربران به صفحات جعلی برای سرقت اطلاعات حساس.
- Cache Poisoning: ذخیره پاسخهای دستکاری شده در Cache سرور یا CDN برای نمایش به سایر کاربران.
- Open Redirect: هدایت کاربران به سایتهای مخرب از طریق لینکهای تولید شده توسط سرور.