Kestrel 服务器漏洞引发请求走私攻击风险

微软已修复 ASP.NET Core 中一个 CVSS 评分高达 9.9 的关键漏洞(CVE-2025-55315),这是该公司对该 Web 开发框架漏洞给出的史上最高严重性评级。该漏洞影响 ASP.NET Core 内置的 Kestrel Web 服务器组件,可能允许经过身份验证的攻击者通过 HTTP 请求走私绕过安全功能。
微软在安全公告中指出:"ASP.NET Core 对 HTTP 请求的不一致解析('HTTP 请求/响应走私')使得授权攻击者能够通过网络绕过安全功能。"该漏洞影响所有当前支持的 ASP.NET Core 版本,包括8、9、10 版,以及仅限 Windows 的 .NET Framework 上运行的旧版 ASP.NET Core 2.3。
攻击者可能实施的恶意行为
该漏洞的核心在于请求走私攻击,攻击者可在一个看似合法的初始请求中隐藏恶意次级请求。微软 ASP.NET Core 安全项目经理 Barry Dorrans 在 GitHub 公告中表示,走私请求可能执行多种恶意操作:"攻击者可利用该漏洞以其他用户身份登录、绕过跨站请求伪造检查或实施注入攻击。"
但 Dorrans 强调实际风险很大程度上取决于应用程序的编写和部署方式:"除非应用程序代码存在异常行为,并跳过本应在每个请求中执行的检查,否则不太可能出现严重后果。"
CVSS 评分引发的争议
尽管 Dorrans 对实际风险持谨慎态度,9.9 的 CVSS 评分仍在开发者群体中引发广泛质疑。Dorrans 在 GitHub 讨论中解释称,微软评分方法考虑最坏情况:"仅就 ASP.NET Core 本身而言,评分远不会这么高。"微软基于"可能改变范围的安全功能绕过"潜力进行评分,意味着攻击可能影响最初易受攻击组件之外的部分。
当开发者询问具体易受攻击的代码模式时,Dorrans 回应称:"任何处理请求的操作都可能存在问题","执行身份验证并基于验证设置访问规则的应用程序可能面临风险",但同时指出这些属于个人观察而非微软官方指导。
受影响范围与修复方案
该漏洞影响广泛版本的 ASP.NET Core,包括 10.0.0-rc.1.25451.107 及更早版本、9.0.9 及更早版本、8.0.20 及更早版本,以及使用 Microsoft.AspNetCore.Server.Kestrel.Core 2.3.0 或更早版本的 ASP.NET Core 2.x 应用。
修复方案因部署模式而异:框架依赖部署的应用需更新服务器 .NET 运行时;独立部署的应用需逐个重建并重新部署。微软已为所有受支持版本发布补丁,开发者应升级至相应版本的 Runtime 或 SDK。
现有防护措施的有效性
Dorrans 指出,受反向代理或 API 网关保护的应用程序可能已具备足够防御:"如果网关或代理能移除走私请求,应用程序即受到保护。"但直接暴露在互联网且无中介过滤的 Kestrel 实现仍存在风险。
微软官方更新指南表示尚未发现该漏洞在野利用。Dorrans 建议企业应审慎评估特定风险:"只有您能评估应用程序面临的风险",同时推荐"最谨慎的做法是尽快打补丁"。
参考来源:
Critical ASP.NET core vulnerability earns Microsoft’s highest-ever severity score
 
                            
 
                             
                             
                     
                     
                 
                         
                 
                         
                 
                    