
در سال ۲۰۲۵، یکی از بحرانیترین آسیبپذیریهای امنیتی منتشرشده در حوزهی فریمورکهای تحت وب،CVE-2025-55315 در ASP.NET Core بود. این آسیبپذیری با امتیاز CVSS 9.9، یکی از شدیدترین آسیبهای اعلامشده توسط مایکروسافت تا کنون محسوب میشود. نقص مذکور در نحوهی پردازش درخواستهای HTTP توسط Kestrel web server رخ میدهد و منجر به حملات HTTP Request Smuggling و Response Splitting میشود.
اهمیت این آسیبپذیری در آن است که حتی در محیطهایی که احراز هویت فعال است، مهاجم میتواند از درون برنامهی وب درخواستهایی را جعل و مسیر ارتباط بین کلاینت و سرور را دستکاری کند. این حملهها معمولاً در اسکنهای خودکار شناسایی نمیشوند و تنها از طریق تست نفوذ حرفهای یا Manual Penetration Testing قابل کشف هستند — موضوعی که بار دیگر لزوم اجرای دورهای تست نفوذ را در سازمانها برجسته میکند.
تحلیل فنی آسیبپذیری بحرانی CVE-2025-55315
نوع آسیبپذیری بحرانی
این نقص از نوع HTTP Request Smuggling (HRS)
است؛ به این معنی که دو سرور مثلاً Reverse Proxy و Backend درخواست HTTP را به شکل متفاوتی تفسیر میکنند. مهاجم از این اختلاف تفسیر برای تزریق درخواستهای پنهان درون Session قانونی استفاده میکند.
بهعنوان مثال، فرض کنید سرور Nginx به عنوان Proxy و Kestrel به عنوان Backend در حال سرویسدهی هستند. مهاجم در یک درخواست HTTP Header خاصی مانند زیر ارسال میکند:
POST /login HTTP/1.1
Host: example.com
Content-Length: 20
Transfer-Encoding: chunked
0
POST /admin HTTP/1.1
Host: example.com
…
اگر Nginx و Kestrel به شکل متفاوتی رفتار کنند، درخواست دوم “POST /admin” ممکن است بدون احراز هویت معتبر به Backend ارسال شود. این باعث میشود مهاجم بتواند Session Hijack، Bypass Authentication، یا تزریق پاسخ جعلی انجام دهد.
کاربرد تست نفوذ و اسکن آسیبپذیری در خنثی کردن ریسک
ویدیوهای بیشتر درباره تست نفوذ
دامنه تأثیر
- محیطهای آسیبپذیر:
- برنامههای ASP.NET Core که روی Kestrel یا IIS با Proxy جلوتر (Nginx, Apache, Azure Front Door) اجرا میشوند.
- سرویسهایی که از ترکیب Transfer-Encoding + Content-Length در HTTP Headerها استفاده میکنند.
- پتانسیل حمله:
- تزریق درخواست (Request Injection)
- جعل پاسخ (Response Splitting)
- دسترسی غیرمجاز به مسیرهای محافظتشده
- سرقت توکن احراز هویت و Session Hijacking
چرا این آسیبپذیری بحرانی در تستهای خودکار شناسایی نمیشود؟
ابزارهای اسکن معمول مثل Nessus،Qualys یا Burp Automated Scan معمولاً درخواستها را طبق RFC استاندارد ارسال میکنند. اما حملات Request Smuggling دقیقاً در مواردی رخ میدهد که درخواست عمداً غیراستاندارد و غیرقابلپیشبینی ساخته شود. فقط در تست نفوذ انسانی، تحلیلگر میتواند:
- نحوهی رفتار ترکیبی Proxy و Backend را مشاهده کند،
- و از اختلاف تفسیر آنها برای تزریق درخواستهای پنهان استفاده کند.
روشهای کاهش و رفع آسیبپذیری بحرانی
مایکروسافت پچ امنیتی مربوط به این آسیبپذیری را در بهروزرسانی ASP.NET Core October 2025 Patch منتشر کرده است.
با این حال، برای ایمنی کامل، باید مجموعهای از کنترلهای فنی و مدیریتی اعمال شود.
1. بهروزرسانی فوری فریمورکها
| مؤلفه | نسخه آسیبپذیر | نسخه امن |
| ASP.NET Core | < 8.0.3 | ≥ 8.0.3 |
| Kestrel | < 7.0.17 | ≥ 7.0.17 |
| IIS Integration Middleware | قبل از اکتبر 2025 | نسخه پچشده در اکتبر 2025 |
توصیه:
- از فرمان زیر برای بررسی نسخهی فعلی استفاده کنید:
·dotnet --info
- سپس آخرین نسخهی امن را از Dotnet.Microsoft.com نصب نمایید.
بیشتر بخوانید: ضرورت انجام تست نفوذ سازمان ها در جهت امنیت سایبری پیشرفته
۲. پیکربندی صحیح Reverse Proxy
اگر از Nginx،Apache یا Azure Front Door استفاده میکنید، باید بررسی کنید که این Proxyها:
- فقط از یک روش انتقال Transfer-Encoding یا Content-Length در هر درخواست پشتیبانی کنند.
- درخواستهایی با Headerهای تکراری یا ترکیبی را رد کنند.
مثلاً در Nginx:
;;proxy_request_buffering on
;ignore_invalid_headers on
;chunked_transfer_encoding off
فعالسازی بررسی سختگیرانه در Kestrel
در فایل: Program.cs
builder.WebHost.ConfigureKestrel(options =>
{
options.Limits.HttpRequestHeadersTimeout = TimeSpan.FromSeconds(10);
options.AllowResponseHeaderCompression =false;
});
این کار مانع از ارسال پاسخهای چندبخشی غیرمنتظره توسط مهاجم میشود.
🔹 پایش امنیتی درخواستهای غیرعادی
ابزارهایی مثل OWASP ModSecurity CRS یا Azure Application Gateway WAF میتوانند الگوهای شناختهشده HTTP Smuggling را شناسایی کنند.
قوانین پیشنهادی:
- جلوگیری از وجود همزمان
Transfer-EncodingوContent-Length. - مسدود کردن کاراکترهای غیرمجاز در Headerها (
\n\r,\x00).
تست نفوذ دورهای Penetration Testing
این آسیبپذیری بهخوبی نشان میدهد که حتی در برنامههای تحت پشتیبانی رسمی مایکروسافت نیز خطاهای سطح پروتکل ممکن است وجود داشته باشند.
بنابراین تست نفوذ باید حداقل در دو لایه انجام شود:
- Application Layer Penetration Test فریمورک، پارس درخواست، کوکیها
- Network & Proxy Layer Penetration Test ارتباط بین Proxy و Backend
برای مشاوره رایگان و یا راه اندازی Splunk/SIEM و مرکز عملیات امنیت SOC با کارشناسان شرکت APK تماس بگیرید |
ابزارهایی مانند Burp Suite Pro, ZAP, یاNuclei با Templateهای خاص HRS برای شناسایی این نقصها مفیدند، اما مهمتر از آن، درک انسانی از رفتار HTTP Stack است.
چکلیست امنیتی اجرایی برای مقابله با حملات Request Smuggling
| ردیف | کنترل امنیتی | هدف | وضعیت |
| 1 | بررسی و بهروزرسانی نسخه ASP.NET Core و Kestrel | حذف نقص نرمافزاری شناختهشده | ☐ |
| 2 | غیرفعالسازی ترکیب Transfer-Encoding و Content-Length در Proxyها | جلوگیری از تزریق درخواست | ☐ |
| 3 | فعالسازی ماژول WAF با Ruleهای OWASP CRS | فیلتر درخواستهای malformed | ☐ |
| 4 | فعالسازی لاگ دقیق HTTP Headers در Kestrel | شناسایی درخواستهای مشکوک | ☐ |
| 5 | اجرای تست نفوذ شبیهسازی HRS هر شش ماه | اطمینان از عدم آسیبپذیری مجدد | ☐ |
| 6 | بررسی Timeout و محدودیت Headerها در پیکربندی سرور | جلوگیری از سوءاستفاده از Chunked Data | ☐ |
| 7 | مانیتورینگ Sessionهای فعال و مقایسه IP/User-Agent | کشف رفتار غیرعادی | ☐ |
| 8 | استفاده از ابزار CI/CD Security Scan قبل از انتشار هر نسخه | کشف نقصهای احتمالی قبل از Production | ☐ |
| 9 | ممیزی امنیتی تنظیمات Proxy و Load Balancer | جلوگیری از ناسازگاری در لایه ۷ | ☐ |
| 10 | آموزش تیم توسعه درباره حملات لایه HTTP و OWASP API Top 10 | افزایش آگاهی فنی | ☐ |
نگاه فراتر از پچ — چرا تست نفوذ حیاتی است
آسیبپذیری بحرانی CVE-2025-55315 نشان داد که حتی زیرساختهایی با امنیت بالا نیز ممکن است دچار نقص در مرز بین اجزا Boundary Layers شوند.
تست نفوذ حرفهای این مرزها را بررسی میکند، یعنی همان نقاطی که اسکنرها معمولاً نادیده میگیرند:
- نحوه تعامل Proxy با Backend،
- الگوهای حمله غیرمتعارف در سطح HTTP،
- بررسی واکنش برنامه به Requestهای ناقص یا چندبخشی.
بنابراین، سازمانهایی که فقط به “Patch Tuesday” یا اسکن خودکار اکتفا میکنند، در معرض خطر باقی میمانند.
تست نفوذ دورهای تضمین میکند که امنیت نهتنها در کد، بلکه در زنجیرهی ارتباطات و تنظیمات زیرساختی برقرار باشد.
بیشتر بخوانید: ضرورت انجام تست نفوذ سازمان ها در جهت امنیت سایبری پیشرفته
آسیبپذیری CVE-2025-55315 یک نمونهی واقعی از تهدیدهای مدرن است که در لایهی پروتکل رخ میدهند، نه در سطح اپلیکیشن یا سیستمعامل.
این نوع نقصها نشان میدهد که امنیت امروز، یک رویداد نیست بلکه یک فرآیند مداوم است.
برای محافظت پایدار:
- باید بهروزرسانی سریع، پایش دقیق، و تست نفوذ منظم را در چرخهی توسعه و بهرهبرداری گنجاند.
- تست نفوذ نهتنها نقاط ضعف فعلی را کشف میکند، بلکه بلوغ امنیتی سازمان را نیز افزایش میدهد.
خلاصه مقاله
آسیبپذیری CVE-2025-55315 در فریمورک ASP.NET Core یکی از بحرانیترین نقصهای امنیتی سال ۲۰۲۵ با امتیاز CVSS 9.9 محسوب میشود. این نقص در نحوهی تفسیر درخواستهای HTTP توسط سرور Kestrel رخ میدهد و امکان اجرای حملات HTTP Request Smuggling را فراهم میسازد. مهاجم میتواند با ارسال درخواستهای ترکیبی یا ناقص، بین رفتار Proxy و Backend ناهماهنگی ایجاد کرده و به مسیرهای محافظتشده، Sessionها و دادههای حساس دسترسی پیدا کند.
اهمیت این آسیبپذیری در آن است که معمولاً توسط اسکنرهای خودکار شناسایی نمیشود و تنها از طریق تست نفوذ دستی و تحلیل انسانی رفتار پروتکل قابل کشف است. همین موضوع لزوم اجرای Penetration Testing دورهای و تخصصی را در سازمانها برجسته میکند.
مایکروسافت در اکتبر ۲۰۲۵ پچ امنیتی این نقص را منتشر کرد، اما برای رفع کامل خطر باید اقدامات زیر انجام شود:
- بهروزرسانی کامل نسخههای ASP.NET Core و Kestrel
- پیکربندی دقیق Reverse Proxyها (Nginx, IIS, Azure Front Door)
- فعالسازی WAF با RuleهایOWASP CRS،
- محدودسازی هدرهای مشکوک و پایش لاگهای HTTP،
- اجرای منظم تست نفوذ در لایهی وباپلیکیشن و شبکه.
این رویداد نشان میدهد که امنیت در عصر امروز یک «وضعیت ایستا» نیست، بلکه فرآیندی مداوم است که تنها از طریق پایش مستمر، بهروزرسانی بهموقع و تست نفوذ هدفمند میتوان آن را حفظ کرد.

