در نسخههای پیش از 2.2.0 از فریمورک Dancer2 برای زبان Perl، یک نقص امنیتی در متد headers_to_array شناسایی شده است که امکان تزریق هدر (Header Injection) را فراهم میکند.
تحلیل فنی نقص
این آسیبپذیری ناشی از عدم پاکسازی (Strip) کاراکترهای CR (Carriage Return) و LF (Line Feed) از نام هدرهای پاسخ (Response Header Names) است. در حالی که این روتین کاراکترهای مذکور را از مقادیر (Values) هدر حذف میکند، اما نام هدرها را نادیده میگیرد.
سناریوی حمله
در صورتی که یک سرور PSGI اعتبارسنجی دقیقی روی کلیدهای هدر انجام ندهد، این بایتها مستقیماً به شبکه ارسال میشوند. در این حالت، هر آنچه پس از CRLF قرار داشته باشد، توسط کلاینت یا سیستمهای واسط به عنوان یک خط هدر مجزا تفسیر میشود. برای بهرهبرداری از این نقص، مهاجم باید بتواند دادههایی را که برنامه برای تعیین نام هدر از آنها استفاده میکند، کنترل کند.
تأثیرات امنیتی
این نقص میتواند منجر به حملاتی نظیر HTTP Response Splitting شود که در نهایت مسیر را برای حملاتی مانند Cross-Site Scripting (XSS) یا مسموم کردن حافظه پنهان (Cache Poisoning) هموار میکند.
- نسخههای آسیبپذیر: نسخههای قدیمیتر از 2.2.0
- راهکار: بهروزرسانی سریع به نسخه 2.2.0 یا نسخههای جدیدتر