
最近,微软发布了一份安全公告,修补了 ASP.NET Core 中的一个关键漏洞。该漏洞允许攻击者通过不一致的 HTTP 请求解释来绕过一项网络安全特性。CVE-2025-55315的 CVSS 得分为 9.9 分(满分 10 分),是微软漏洞中评分最高的。
该漏洞在 ASP.NET Core 10.0、9.0、8.0 版本以及 Kestrel 包 2.x 版本中均存在。获得授权的攻击者可以通过 HTTP 请求和响应的不一致解析来绕过一项安全特性。微软表示,对于 HTTP 请求/响应走私场景,当前并没有什么措施能够缓解,并强烈推荐升级到他们列出的修复版本,以防安全绕过。
HTTP请求走私利用了服务器和代理解析 HTTP 请求的差异,使用 Content-Length 或 Transfer-Encoding 等头字段将一个请求隐藏在另一个请求中。在后续发表的一篇文章中,微软安全响应中心解释道:
9.9 的得分反映了及时解决这个问题的重要性,这涉及到一个可以影响应用程序认证和授权的安全功能绕过。……根据应用程序处理请求的方式,若未及时修复此漏洞,可能导致权限提升或请求操纵等安全风险。
微软.NET 安全技术产品经理Barry Dorrans在一条评论中阐明了高分原因:
这个漏洞使得 HTTP 请求走私成为可能,仅对 ASP.NET Core 来说,它的评分远不会那么高,但我们不是这样评分的。我们是根据这个漏洞对基于 ASP.NET 构建的应用程序可能产生的影响来评分的。
Datadog 资深工程师以及.NET Escapades 作者Andrew Lock发表了一篇题为“理解.NET历史上最严重的漏洞:请求走私和 CVE-2025-55315”的文章,其中提供了一个典型的请求走私示例,并写道:
对于 ASP.NET Core 应用程序,如果你正在使用 HttpRequest.Body 或 HttpRequest.BodyReader,或其他类似的方法,那么即使你没有明确使用代理服务器,你可能也容易受到攻击。即使你不认为你的应用程序是一个代理或者使用了代理,只要你在做“类似代理”的事情,你可能就容易受到攻击。
根据应用程序处理请求的方式,该漏洞可能导致权限提升、服务器端请求伪造(SSRF)、跨站请求伪造(CSRF)以及绕过输入验证的注入攻击等安全风险。微软建议开发人员检查代理配置,确保它能规范化请求并检测走私攻击尝试。
HeroDevs 高级开源合作伙伴经理Hayden Barnes发布了一个ASP.NET Core控制台应用程序,用于复现和测试 HTTP 块传输和换行符解析行为,使开发人员可以检查他们的.NET 构建是否受到 CVE-2025-55315 的影响。
由于微软不会针对 EOL 软件发布 CVE,所以 Reddit 上的许多开发人员最初对该漏洞将如何影响.NET 6及更早版本产生了困惑。
为了解决这个问题,开发人员必须安装 ASP.NET Core 8、9 或 10 运行时/SDK 的补丁版本,或将 Microsoft.AspNetCore.Server.Kestrel.Core 更新到 2.3.6 或更高版本。对于缺少官方支持的.NET 6,有第三方发布的版本解决了这一漏洞。
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:https://www.infoq.com/news/2025/11/dotnet-request-smuggling/








评论