一、查验消息
根据网上消息,ASP.NET Core 修复了一个严重漏洞,官方说明:
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-55315
https://www.microsoft.com/en-us/msrc/blog/2025/10/understanding-cve-2025-55315
但目前官方只为 .NET 8 或更高版本,以及 .NET Core 2.3 提供了修复
.NET 6 以及更低版本如 .NET Core 3.1 等版本因已停止维护官方未提供任何有关漏洞的说明及修复
二、漏洞验证
但根据讨论贴内容:https://github.com/dotnet/aspnetcore/issues/64033
有人实际创建了一个项目来验证此问题,至少在 .NET 6 中复现了此问题
https://github.com/sirredbeard/CVE-2025-55315-repro
然后我将其内容改造了一个 .NET Core 3.1 环境的验证程序,目前看 .NET Core 3.1 也是存在此问题的
https://github.com/xwgli/CVE-2025-55315-repro-aspnetcore31/tree/main/TestServer_NET31
三、处理方案
但好消息是,目前看到的信息是,仅直接通过 ASP.NET Kestrel 自承载 http 对外提供服务时,才会遇到此问题。
假设 ASP.NET 使用 IIS 承载或在 nginx 等反向代理后,且 IIS 或 nginx 等 WEB 服务器能够提供对非法请求的过滤的话
实际后面的 ASP.NET 程序就可以免受影响了。目前我验证的一些环境漏洞通过情况:
| 环境 | 版本号 | 测试结果 | 漏洞 |
|---|---|---|---|
| Kestrel | 3.1.32 | A:× B:× | 存在 |
| IIS Express | 10.0.26013.1000 | A:√ B:√ | 不存在 |
| IIS | 10.0.17763.1 | A:√ B:× | 存在 |
| IIS | 10.0.20348.1 | A:√ B:× | 存在 |
| IIS | 10.0.26100.1882 | A:√ B:√ | 不存在 |
| Nginx | 1.29.0 | A:√ B:√ | 不存在 |
当然以上结果的前提是这个验证程序是有效的,暂时还没有进一步确认验证程序是否完整复现了漏洞情况。
更多说明:
https://andrewlock.net/understanding-the-worst-dotnet-vulnerability-request-smuggling-and-cve-2025-55315/
https://www.cnblogs.com/netry/p/19147223/CVE-2025-55315