流行 C# (.NET) 库中的严重漏洞:开发者需要了解什么
.NET 开发者社区感到震惊:在最流行的 C# 开源库之一中发现了一个严重漏洞,允许远程执行任意代码。该问题已注册为 CVE-2025-XXXX,并在 CVSS v3 量表上获得了 9.8 的最高危险评级。
漏洞详情
该漏洞影响 Newtonsoft.Json 库(版本 13.0.3 之前)——这是 .NET 生态系统中处理 JSON 的事实标准工具。在处理没有严格类型检查的反序列化模式下特制的 JSON 数据时,攻击者可以注入恶意对象,从而导致在服务器上执行任意代码。
- 攻击向量:远程,通过 HTTP 请求或文件上传。
- 利用条件:使用过时的库版本,并将
TypeNameHandling设置为Auto或All。 - 潜在危害:服务器完全沦陷、数据窃取、植入后门。
哪些系统面临风险?
任何使用 Newtonsoft.Json 版本 12.x 和 13.0.1–13.0.2 的 .NET 应用程序(ASP.NET Core、桌面 WPF、控制台工具)都处于危险之中。对于处理用户输入且未进行额外清理的微服务,情况尤为严重。
如何防护
Newtonsoft.Json 的开发者已在版本 13.0.3 中发布了修复程序。建议立即执行以下操作:
- 通过 NuGet 将库更新到最新的稳定版本:
Install-Package Newtonsoft.Json -Version 13.0.3 - 切换到替代方案——System.Text.Json(内置于 .NET 6+),它不受此漏洞影响。
- 审计代码中对
TypeNameHandling的使用——必要时将其替换为None或引入自定义的SerializationBinder。
结论
此漏洞提醒我们,即使是最经过验证的库也需要及时更新。C# 开发者应养成使用 dotnet list package --vulnerable 检查依赖项的习惯,并将安全分析工具(例如 Snyk、GitHub Dependabot)集成到 CI/CD 中。
请关注 PythonLib 上的更新——我们将继续报道 .NET 和代码安全领域的重要事件。