.NET 史上最严重安全漏洞:微软紧急修复 9.9 分高危漏洞 CVE-2025-55315
如果有人告诉你,你的 .NET 应用可能正在"裸奔",你会怎么办?近日,微软发布了一个评分高达 9.9 分的安全漏洞公告,这是微软历史上评分最高的漏洞之一。如果你正在使用 ASP.NET Core,这篇文章你必须看完。
漏洞复现
什么是 CVE-2025-55315 漏洞?
CVE-2025-55315 是一个 HTTP 请求走私(Request Smuggling)漏洞,攻击者可以利用服务器和代理对 HTTP 请求的解析差异,绕过应用程序的安全验证机制。
简单来说,这个漏洞允许攻击者通过网络"夹带私货"——在一个看似正常的 HTTP 请求中隐藏另一个恶意请求,从而绕过身份验证和权限控制。
受影响的版本包括:
- ASP.NET Core 10.0
- ASP.NET Core 9.0
- ASP.NET Core 8.0
- Kestrel 2.x 包
HTTP 请求走私是如何工作的?
HTTP 请求走私利用了服务器和代理在解析 HTTP 请求时的不一致性。攻击者通过操纵 Content-Length 或 Transfer-Encoding 等请求头,将一个请求"藏"在另一个请求中。
当前端代理和后端服务器对请求边界的理解不同时,攻击者就可以:
- 绕过安全检查
- 提升权限
- 操纵其他用户的请求
- 窃取敏感信息
为什么评分如此之高?
微软安全响应中心(MSRC)在后续文章中解释了 9.9 高分的原因:
"9.9 的评分反映了及时解决这个问题的重要性。这个漏洞涉及安全功能绕过,会影响应用程序如何执行身份验证和授权。根据应用程序处理请求的方式,如果不及时修补,可能会导致权限提升或请求操纵等攻击。"
微软 .NET 安全团队的 Barry Dorrans 进一步说明:
"这个漏洞本身启用了 HTTP 请求走私功能。对于 ASP.NET Core 来说,单独看这个漏洞可能不会得到这么高的分数。但我们的评分方式是基于该漏洞可能对构建在 ASP.NET 之上的应用程序产生的影响。"
哪些应用程序面临风险?
Datadog 的资深工程师、《.NET Escapades》作者 Andrew Lock 发表了深度分析文章《理解史上最严重的 .NET 漏洞:请求走私与 CVE-2025-55315》。
他在文章中指出,即使你的应用程序没有显式使用代理服务器,只要代码中涉及以下操作,就可能存在风险:
- 使用
HttpRequest.Body 读取请求体
- 使用
HttpRequest.BodyReader 处理请求
- 执行类似代理的功能(如请求转发、请求重写等)
云栈社区的网友也提醒开发者,许多微服务架构中的 API 网关、反向代理等组件都可能受到影响,需要尽快进行安全评估。
如何修复这个漏洞?
微软表示,目前没有已知的缓解措施可以防止 HTTP 请求/响应走私攻击,强烈建议立即升级到修复版本。
修复步骤:
-
检查当前版本
使用命令 dotnet --version 查看当前 .NET 版本
-
升级到安全版本
- ASP.NET Core 10.0:升级到最新补丁版本
- ASP.NET Core 9.0:升级到最新补丁版本
- ASP.NET Core 8.0:升级到最新补丁版本
- Kestrel 2.x:升级相关 NuGet 包
-
测试应用程序
升级后进行全面测试,确保应用程序正常运行
-
重新部署
将修复后的应用程序部署到生产环境
开发者应该注意什么?
除了及时打补丁,开发者还应该:
加强安全意识
了解 HTTP 请求走私的原理和危害,在设计应用程序时考虑这类攻击场景。
审查代码逻辑
检查应用程序中是否有直接处理 HTTP 请求体的代码,评估潜在风险。
实施纵深防御
不要依赖单一的安全措施,应该在多个层面(网络、应用、数据)部署安全控制。
定期更新依赖
及时关注微软的安全公告,保持框架和依赖包的更新。
使用安全工具
部署 Web 应用防火墙(WAF)、入侵检测系统(IDS)等安全工具,增强防护能力。
相关资源:
Github复现工具:sirredbeard/CVE-2025-55315-repro
微软官方补丁:msrc.microsoft.com/update-guide/vulnerability/CVE-2025-55315
华为网络安全认证课:https://yunpan.plus/t/16
编程学习:https://yunpan.plus/f/14
写在最后
CVE-2025-55315 的出现再次提醒我们,即使是成熟的框架也可能存在严重的安全漏洞。对于使用 ASP.NET Core 的开发团队来说,立即行动、尽快修复是当务之急。
安全无小事,及时更新、持续关注,才能保障应用程序和用户数据的安全。