- شناسه CVE-2025-55315 :CVE
- CWE-444 :CWE
- yes :Advisory
- منتشر شده: اکتبر 14, 2025
- به روز شده: اکتبر 17, 2025
- امتیاز: 9.9
- نوع حمله: HTTP request
- اثر گذاری: Security Feature Bypass
- حوزه: سرورهای اپلیکیشن
- برند: Microsoft
- محصول: ASP.NET
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری بحرانی تفسیر ناهماهنگ درخواست های HTTP (HTTP Request/Response Smuggling) در ASP.NET Core شناسایی شده است. این ضعف به مهاجم احراز هویتشده اجازه میدهد تا از طریق شبکه ویژگی های امنیتی سمت سرور را دور بزند و منجر به سرقت اعتبار کاربران دیگر شود.
توضیحات
آسیبپذیری CVE-2025-55315 در ASP.NET Core (فریمورک وب متنباز مایکروسافت برای توسعه اپلیکیشنهای سمت سرور) و برخی نسخههای Visual Studio 2022 شناسایی شده است. این ضعف ناشی از تفسیر ناهماهنگ درخواست های HTTP است و مطابق با CWE-444 طبقهبندی میشود. به عبارت دیگر، تفسیر ناهماهنگ هدرها یا مرزبندی HTTP میتواند منجر به حملهای از نوع HTTP request/response smuggling (قاچاق سازی یا پنهان سازی درخواست یا پاسخ HTTP ) شود. مهاجم احراز هویتشده میتواند یک درخواست HTTP مخرب ارسال کند تا عملکرد تجزیه گر Kestrel (وب سرور پیش فرض ASP.NET Core) دچار تفسیر ناهماهنگ شود و منجر به دور زدن ویژگی های امنیتی گردد.
این ضعف بهسادگی قابل خودکارسازی است؛ مهاجم میتواند با ابزارهای خودکار مانند Burp Suite یا اسکریپتهای پایتون با کتابخانه requests، بهصورت از راه دور، بدون تعامل کاربر و با دسترسی پایین درخواستهای ناهماهنگ ارسال کند و ویژگی های امنیتی را دور بزند. برای مثال، مهاجم میتواند با دستکاری هدرهای chunked-transfer یا پردازش newline، یک درخواست ثانویه پنهان سازی (request smuggling) کند، اعتبار کاربران دیگر را سرقت نماید، حملات SSRF (Server‑Side Request Forgery) انجام دهد یا مکانیزم های CSRF را دور بزند.
کد اثبات مفهومی (POC) عمومی در GitHub موجود است که سرور Kestrel لوکال را تست میکند و عملکرد تجزیه chunked-transfer و newline را در نسخههای آسیبپذیر نشان میدهد.
پیامدهای این آسیبپذیری شامل نقض محرمانگی با افشای اطلاعات حساس مانند اعتبار کاربران، یکپارچگی با تغییرات غیرمجاز در فایلها یا درخواستها و در دسترسپذیری با امکان ایجاد اختلال جزئی در سرور است. مایکروسافت پچهای امنیتی را در بهروزرسانیهای اکتبر 2025 منتشر کرده است.
CVSS
Score | Severity | Version | Vector String |
9.9 | CRITICAL | 3.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L/E:U/RL:O/RC:C |
لیست محصولات آسیب پذیر
Versions | Product |
affected from 8.0 before 8.0.21 | ASP.NET Core 8.0 |
affected from 9.0 before 9.0.10 | ASP.NET Core 9.0 |
affected from 2.3 before 2.3.6 | ASP.NET Core 2.3 |
affected from 17.12.0 before 17.12.13 | Microsoft Visual Studio 2022 version 17.12 |
affected from 17.10.0 before 17.10.20 | Microsoft Visual Studio 2022 version 17.10 |
affected from 17.14.0 before 17.14.17 | Microsoft Visual Studio 2022 version 17.14 |
لیست محصولات بروز شده
Versions | Product |
8.0.21 | ASP.NET Core 8.0 |
9.0.10 | ASP.NET Core 9.0 |
2.3.6 | ASP.NET Core 2.3 |
17.12.13 | Microsoft Visual Studio 2022 version 17.12 |
17.10.20 | Microsoft Visual Studio 2022 version 17.10 |
17.14.17 | Microsoft Visual Studio 2022 version 17.14 |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که ASP.NET Core را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
89,000 | site:.ir “ASP.NET Core” | ASP.NET Core |
نتیجه گیری
این آسیبپذیری با شدت بحرانی در ASP.NET Core، امکان پنهان سازی درخواست (request smuggling) HTTP و دور زدن ویژگی های امنیتی را فراهم میکند و میتواند منجر به سرقت اعتبار، اجرای SSRF، دور زدن مکانیزمهای CSRF یا تزریق و تغییر درخواستها شود. با توجه به انتشار پچ رسمی ، اجرای اقدامات زیر برای جلوگیری از بهرهبرداری و کاهش ریسک ضروری است:
- بهروزرسانی فوری: NET Core را از طریق Microsoft Update به نسخههای 8.0.21، 9.0.10 یا 2.3.6 بهروزرسانی کنید. پس از اعمال پچ، اپلیکیشن را مجدداً نصب کرده یا سرور را ریبوت نمایید. برای Visual Studio 2022، به نسخههای 17.10.20، 17.12.13 یا 17.14.17 به روزرسانی کنید. برای اپلیکشنهای self-contained، .NET را بهروزرسانی، کامپایل مجدد و redeploy (توزیع مجدد) کنید.
- راهکارهای کاهش ریسک (Mitigations): هدرهای HTTP را با اعتبارسنجی دقیق فیلتر کنید؛ هدرهای مرزبندی مثل Content‑Length و Transfer‑Encoding را نرمالسازی و بررسی کنید. از پروکسیهای معکوس بهروز مانند NGINX همراه با mod_security یا یک فایروال اپلیکیشن وب با قواعد OWASP CRS استفاده کنید تا الگوهای پنهان سازی شناسایی و مسدود شوند. همچنین، محدودیت اندازه برای chunked encoding اعمال نمایید.
- محدودسازی دسترسی: اصل حداقل دسترسی (Least Privilege) را برای کاربران احراز هویتشده اعمال کنید، احراز هویت دو مرحلهای (2FA) را فعال نمایید و دسترسی به APIهای حساس را با RBAC محدود کنید.
- نظارت بر لاگها: لاگهای HTTP و درخواستهای مشکوک را با ابزارهایی مانند ELK Stack یا Splunk مانیتور کنید و از سیستمهای SIEM برای شناسایی الگوهای پنهان سازی درخواست استفاده نمایید.
- ایزولهسازی محیط: اپلیکیشنهای NET را در کانتینرهای Docker یا کلاسترهای Kubernetes با سیاست های شبکه ای ایزوله اجرا کنید و ترافیک ورودی را با فایروال اپلیکیشن وب (WAF)کنترل نمایید.
- اسکن و تست امنیتی: اپلیکیشن را با ابزارهایی مانند OWASP ZAP یا Burp Suite برای تست HTTP smuggling اسکن کنید و تستهای نفوذ روی سناریوهای درخواست مخرب انجام دهید.
- آموزش: توسعهدهندگان و مدیران را در مورد ریسکهای HTTP smuggling، اهمیت اعتبارسنجی هدرها و بهترین شیوههای ایمنسازی NET آموزش دهید.
اجرای این اقدامات، ریسک دور زدن سیاست های امنیتی و حملات پنهان سازی درخواست را به حداقل میرساند و امنیت اپلیکیشنهای Microsoft ASP.NET Core را در برابر تهدیدات تقویت میکند.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
مهاجم میتواند از طریق ارسال درخواستهای HTTP مخرب یا با بهکارگیری حسابهای کاربری مجاز و نقطهضعف در مسیرهای لبه (مثلاً پروکسی/باربالانسر نرمالسازینشده) به Kestrel دسترسی بفرستد
Privilege Escalation (TA0004)
بهرهبرداری از درخواستهای smuggled میتواند به اجرای عملیات در بافت نشست کاربر دیگر یا فراخوانی endpointهای داخلی منجر شود که اطلاعات داخلی را برای طراحی اکسپلویتهای ارتقاء امتیاز فراهم میکند
Defense Evasion (TA0005)
مهاجم میتواند درخواستهای پنهان را طوری قالببندی کند که از قواعد ساده تشخیص عبور کند مخلوط با ترافیک مشروع، connection reuse، یا header obfuscation
Lateral Movement (TA0008)
سرور آلوده یا نشستهای ربودهشده میتوانند به عنوان نقطه پرتاب برای تماس با سرویسهای داخلی استفاده شوند؛
Collection (TA0009)
مهاجم ممکن است از طریق درخواستهای پنهان به دادههای حساس پاسخها یا لاگها دسترسی یافته و آنها را محلی جمعآوری کند.
Exfiltration (TA0010)
پس از جمعآوری، مهاجم میتواند دادهها را از طریق کانالهای خروجی یا نشستهای پنهان ارسال کند
Impact (TA0040)
پیامد نهایی شامل دورزدن ویژگیهای امنیتی، سرقت نشست/اعتبارنامه، افشای دادهها، امکان اجرای SSRF یا تزریق و در صورت توسعه اکسپلویتهای ثانویه حتی از دست رفتن کنترلِ کامل سرور است
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-55315
- https://www.cvedetails.com/cve/CVE-2025-55315/
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-55315
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-55315
- https://vuldb.com/?id.328338
- https://github.com/sirredbeard/CVE-2025-55315-repro
- https://www.bleepingcomputer.com/news/microsoft/microsoft-fixes-highest-severity-aspnet-core-flaw-ever/
- https://nvd.nist.gov/vuln/detail/CVE-2025-55315
- https://cwe.mitre.org/data/definitions/444.html
گزارش اثبات آسیبپذیری CVE-2025-55315
اطلاعات آسیبپذیری
محصول آسیبپذیر: ASP.NET Core (Kestrel) / Microsoft.AspNetCore.Server.Kestrel.Core
عنوان: تفسیر ناسازگار HTTP (Inconsistent HTTP Parsing)
شناسه: CVE-2025-55315
وضعیت مشاوره: Advisory / Patch available
نمره CVSS گزارششده: 9.9 (Critical)
محصول/نسخههای آسیبپذیر
ASP.NET Core شاخههای فریمورک / پکیجهای مرتبط:
- نسخههای 6.0.0 — 6.0.36
- نسخههای 8.0.0 — 8.0.20
- نسخههای 9.0.0 — 9.0.9
- برخی بستههای پیشانتشار (10.0.0‑rc متفاوت بر حسب توزیع)
Microsoft.AspNetCore.Server.Kestrel.Core:
- در برخی آرایشهای بستهبندی، نسخههای ≤ 2.3.0 ممکن است آسیبپذیر باشند.
خلاصه مشکل (Description)
تفسیر ناسازگار/غیرهمگنِ HTTP مثلاً ترکیب متناقض Transfer-Encoding و Content-Length بین Kestrel و سایر اجزای مسیر ترافیک منجر به امکان HTTP request/response smuggling میشود. مهاجم قادر است یک درخواست پنهان یا فرعی را داخل یک درخواست دیگر «قورت دهد» و بسته به توپولوژی میزبانی و منطق اپلیکیشن، این امر میتواند منجر به دورزدن کنترلهای لبهای، جعل نشست/اعتبارنامه، تزریق یا افشای دادهها شود.
پیشنیازهای بهرهبرداری (Prerequisites)
- مقصد اجرای سرویس NET Core / Kestrel باید از نسخههای آسیبپذیر باشد
- مهاجم باید بتواند درخواستهای HTTP به سرور هدف بفرستد (معمولاً اینترنتی یا از طریق پروکسی/باربالانسر).
- بردار واقعی و موفقیت بهرهبرداری وابسته به ساختار و رفتار پروکسی/واسط (normalization) و مسیرهای لبه است.
نتیجه مورد انتظار در حالت امن (Expected Secure Behavior)
- لایه لبه (proxy/WAF) و origin (Kestrel) باید قواعد parsing یکسان و قاطع برای هدرهای Transfer-Encoding و Content-Length اعمال کنند؛ ترکیبات متناقض باید رد شوند.
- در حالت امن، امکان قرار گرفتن یک درخواست مخفی در زنجیره درخواستها نباید وجود داشته باشد و هر درخواست باید بهصورت یکتا و بدون ابهام تفسیر شود.
راهکارها و کاهش ریسک (Mitigation / Patch Guidance)
فوری (Immediate)
- پچ فوری: اپدیتهای رسمی مایکروسافت برای NET Core / Kestrel را فوراً اعمال کنید و در صورت استفاده از اپهای self-contained، پروژهها را با بستههای runtime بهروز بازسازی و منتشر نمایید.
- میانلایه نرمالسازی: تا زمان پچ، یک reverse-proxy/WAF که parsing قاطع و نرمالسازی کامل هدرها را انجام میدهد در مقابل Kestrel قرار دهید و کلیه درخواستهای مبهم یا دارای هدرهای متضاد را رد کنید.
- کاهش سطح دسترسی: مسیرهای مدیریتی/حساس را پشت احراز هویت سختتر قرار دهید و از قرار گرفتن Kestrel مستقیم در معرض اینترنت خودداری کنید (فقط از طریق لبه امن و نرمالکننده دسترسی دهید).
کوتاهمدت / میانمدت (Medium)
- محدودسازی اندازه درخواست و طول هدرها در لبه (load balancer/WAF)
- افزودن قوانین detection در WAF برای الگوهای request-smuggling وجود همزمان Transfer-Encoding و Content-Length با مقادیر متناقض
- بازسازی و redeploy اپهای self-contained با runtime های پچشده؛ برای توزیعهای لینوکسی صبر کنید تا پکیجهای توزیعکننده بهروزرسانیشده منتشر شوند و سپس آنها را اعمال کنید.
طولانیمدت (Long-term)
- پیادهسازی تستهای امنیتی خودکار و محفظهای (fuzzing) روی پشته HTTP جهت کشف همنوعسازیهای parsing بین مولفهها.
- طراحی مجدد معماری برای قرارگیری لایه parsing/normalization واحد در لبه شبکه و الزام همه اجزا به استفاده از آن.
- آموزش تیم توسعه و عملیات درباره خطرات request smuggling و تدوین SOP برای استقرار امن Kestrel در محیطهای تولید.
تشخیص و مانیتورینگ (Detection & Monitoring)
- لاگهای لبه: (proxy/WAF) شناسایی و هشدار برای درخواستهایی که همزمان Transfer- Encoding و Content-Length با مقادیر نامتعارف دارند.
- لاگهای Kestrel: بررسی برای رخدادهای اتصال/درخواست با مرزهای غیرمنتظره یا reuse غیرعادیِ connectionها.
- نظارت بر رفتار نشستها: هشدار در صورت مشاهده عملیات حساس انجامشده در نشستهایی که الگوهای غیرمعمول دارند مثلاً session-authenticated که ناگهان درخواستهای دیگری را اجرا میکند
- جمعآوری packet-capture در بازه تحقیقات برای بازسازی مرزهای HTTP و شناسایی نمونههای smuggling
واکنش به حادثه (Incident Response)
- در صورت شناسایی بهرهبرداری احتمالی: ایزوله میزبانهای مشکوک و حفظ شواهد PCAP، لاگهای proxy/Kestrel، لاگ اپلیکیشن
- بازسازی زمانبندی رخدادها: همبستهسازی لاگهای لبه و origin برای تشخیص مرز تفسیر ناسازگار.
- اعمال پچ، بازسازی و انتشار مجدد سرویس با runtime/ پکیجهای patched؛ گردش کلیدها/توکنهایی که احتمالاً نشت یافتهاند.
- جستجو (hunt) برای جلسات hijack شده، رفتارهای lateral و درخواستهای غیرمعمول ایجادشده در بازه مشکوک.
جریان حمله (Attack Flow)
شکل 1 جریان حمله برای سوءاستفاده از این آسیب پذیری را نشان می دهد

شکل 1: جریان حمله
اثبات مفهوم (PoC) — هشدار امنیتی
تیم فنی Vulnerbyte به بررسی امکان اجرای مجدد POC مربوط به این آسیب پذیری در محیط ایزوله آزمایشگاه پرداخته است. نتیجه در شکل های شماره 2 و 3 قابل مشاهده است.

شکل 2: اجرای اکسپلویت پایتون
شکل 2، اجرای یک اسکریپت خودکارسازی شده به نام CVE-2025-55315-exploit.py را در محیط ویندوز (از طریق خط فرمان) نمایش میدهد. این ابزار به عنوان یک تستر یا اکسپلویت برای آسیبپذیری قاچاق درخواست HTTP (HTTP Request Smuggling) در Kestrel استفاده میشود. هدف اصلی این اسکریپت، ارسال خودکار الگوهای مختلف درخواستهای HTTP حاوی هدرهای متناقض مانند Transfer-Encoding و Content-Length به سرور هدف است تا ببیند آیا سرور به دلیل ناسازگاری در تفسیر این هدرها، یک درخواست پنهان (Smuggled) را میپذیرد یا خیر؛ خروجی ساختاریافتهی آن (شامل حروف تکراری و شمارهگذاری) نیز نتیجهی بررسیهای این ابزار برای شناسایی مرزهای درخواست و وضعیت آسیبپذیری را گزارش میدهد.
PoC هدرهای متضاد Transfer-Encoding/Content-Length و payload های chunked میسازد تا یک «درخواست پنهان» داخل یک درخواست بفرستد — اختلاف پارسینگ بین Kestrel و لبه پروکسی WAF باعث میشود آن درخواست پنهان بهصورت جداگانه اجرا شود و منجر به دورزدن کنترلهای لبه، جعل نشست یا افشای دادهها شود.

شکل 3: اجرای موفقیت آمیز اکسپلویت روی سیستم آسیب پذیر
شکل 3، اثبات موفقیتآمیز حمله قاچاق درخواست HTTP را از طریق دستورات خط فرمان printf و nc (Netcat) نشان میدهد. مهاجم ابتدا یک درخواست مخرب را به پورت 5001 ارسال میکند که حاوی یک payload قاچاق شده است، اما سرور تنها درخواست اول را پردازش میکند و بخش قاچاق شده در بافر ورودی سرور پشتیبان (Backend Kestrel) باقی میماند. سپس، مهاجم بلافاصله یک درخواست عادی دیگر را به پورت 5002 ارسال میکند؛ اما به دلیل مسموم شدن اتصال، سرور Kestrel در پورت 5002 بهجای درخواست عادی، payload قاچاق شده از عملیات قبلی را پردازش میکند و در پاسخ دوم با عبارت “This is the unsecure implementation” پاسخ میدهد، که این امر تفسیر ناسازگار HTTP و موفقیت در دور زدن منطق امنیتی را اثبات میکند.
منابع (References)
- https://nvd.nist.gov/vuln/detail/CVE-2025-55315
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-55315
- https://portswigger.net/web-security/request-smuggling
CVE-2025-55315 – HTTP Request/Response Smuggling (Inconsistent HTTP Parsing)
CVE ID: CVE-2025-55315
Severity: Critical
Affected Systems:
- ASP.NET Core 6.0.x – 6.0.36, 8.0.0 – 8.0.20, 9.0.0 – 9.0.9, and some 10.0.0-rc packages.
- Microsoft.AspNetCore.Server.Kestrel.Core versions <= 2.3.0 in some packaging layouts. (herodevs.com)
Patched In: Microsoft security updates addressing CVE-2025-55315 — apply vendor updates / rebuild self-contained apps with patched runtime packages as per Microsoft guidance. (Microsoft Security Response Center)
References:
- NVD — CVE-2025-55315. https://nvd.nist.gov/vuln/detail/CVE-2025-55315. (NVD)
- Microsoft Security Update Guide — CVE-2025-55315. https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-55315. (Microsoft Security Response Center)
- The Register — Microsoft patches ASP.NET Core bug. https://www.theregister.com. (The Register)
- Tenable / Advisory — CVE-2025-55315. https://www.tenable.com/cve/CVE-2025-55315. (Tenable®)
- Turb0 reproduction notes / PoC reference. https://www.turb0.one/pages/Abbreviated_Reproduction_of_CVE-2025-55315_(Critical_9.9_ASP.NET_Kestrel_HTTP_Request_and_Response_Smuggling).html. (turb0.one)
Description
An inconsistent interpretation of HTTP requests between Kestrel (ASP.NET Core’s web server) and other HTTP-processing components can enable HTTP request/response smuggling (CWE-444). An attacker able to send requests that reach the application (authenticated in many scenarios) can smuggle an extra hidden request inside another HTTP request, enabling front-end control bypasses, credential/session spoofing, request forgery, or injection depending on deployment and app logic. (NVD)
Prerequisites
- The target is running an affected ASP.NET Core / Kestrel version (see Affected Systems). (herodevs.com)
- The attacker can send HTTP requests that reach the Kestrel instance (internet-facing hosts or behind misconfigured proxies).
- Exploitation is highly dependent on deployment topology (proxies/load-balancers) and request normalization behavior.
Proof of Concept (PoC)
(For analysis and lab testing only)
printf 'GET / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost port
(Reference reproduction and write-ups). (turb0.one)
Expected Result
HTTP stacks must consistently parse and normalize ambiguous combinations of Transfer-Encoding
and Content-Length
and must not allow hidden or secondary requests to be interpreted differently by upstream/front-end components and the application server. Normalization should be enforced at the edge (proxy/WAF) and in the origin server to prevent request smuggling. (NVD)
Mitigation / Patch Guidance
- Patch immediately — apply Microsoft-provided updates for ASP.NET Core / Kestrel and rebuild/redeploy self-contained apps with patched runtime packages. (Microsoft Security Response Center)
- Place a strict parsing/normalizing reverse proxy or WAF in front of Kestrel that enforces unambiguous request headers (normalize
Transfer-Encoding
/Content-Length
, reject conflicting/malformed headers). (Tenable®) - Tighten authentication and access controls on sensitive endpoints; restrict Kestrel exposure (do not expose Kestrel directly to the public internet without a hardened edge). (CSO Online)
- For self-contained deployments: rebuild apps with updated runtime packages and redeploy. (GitHub)
Detection & Monitoring
- Monitor proxy/WAF logs for requests with conflicting
Transfer-Encoding
andContent-Length
headers. - Look for anomalous connection reuse or unexpected request boundaries in web server logs (partial requests, unexpected authenticated actions).
- Enable verbose Kestrel logging for connection/request boundaries temporarily during hunts and correlate with edge logs. (Tenable®)
Incident Response
- Isolate suspected hosts and preserve volatile evidence (memory, packet captures).
- Collect Kestrel, proxy/WAF, and application logs for the suspected timeframe.
- Patch and redeploy affected services; rotate credentials and secrets that may have been exposed.
- Hunt for lateral activity and signs of session hijacking or credential reuse originating from the same timeframe. (Microsoft Security Response Center)
Disclaimer
This report is for defensive cybersecurity and patch management purposes only. Testing or exploitation on systems without authorization is prohibited.