在 C++ 的 nlohmann/json 库中发现严重安全漏洞

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

流行 C++ 库 nlohmann/json 中的严重安全漏洞



网络安全专家在广泛使用的 C++ 库 nlohmann/json 中发现了一个危险漏洞 (CVE-2024-XXXX)。这个 JSON 解析器被认为是 C++ 生态系统中最流行的工具之一——它被应用于从嵌入式系统到大型服务器解决方案的各种项目中。该漏洞允许攻击者远程引发拒绝服务 (DoS),或在某些情况下执行任意代码。



漏洞如何运作?

问题在于对递归 JSON 结构的处理。当库遇到深度嵌套的对象或数组时,它可能会耗尽调用栈。在某些条件下,这会导致缓冲区溢出,从而为攻击打开通道。该漏洞利用无需身份验证——只需向易受攻击的服务器或客户端发送一个特制的 JSON 请求即可。



受影响的版本

该漏洞影响从 3.10.0 到 3.11.2(含)的所有库版本。开发者已在版本 3.11.3 中发布了修复该问题的补丁。如果您使用的是更旧的版本(3.10.0 之前),它们也可能存在漏洞,但尚未发布补丁——建议立即更新到最新的稳定版本。



主要风险

  • 拒绝服务 (DoS): 攻击者可以通过发送恶意 JSON 来“瘫痪”服务。
  • 数据泄露: 在某些配置下,可能访问进程内存。
  • 远程代码执行: 理论上可能导致系统完全被攻陷。


开发者应该做什么?

第一步也是最重要的一步——将库更新到 3.11.3 或更高版本。可以通过 Conan、vcpkg 包管理器或从 GitHub 下载源代码来完成。

额外的安全措施:

  • 在 Web 服务器层面限制传入 JSON 请求的大小。
  • 设置数据处理超时。
  • 启用严格的 JSON 解析模式(如果库支持)。
  • 审计代码,检查依赖项中是否使用了易受攻击的版本。


结论

这一发现提醒我们定期更新 C++ 项目中组件的重要性。即使是经过多年验证的库也可能包含严重错误。建议订阅 GitHub 上的 nlohmann/json 仓库,以便及时收到新版本和安全补丁的通知。

请关注 PythonLib 的更新——我们将让您随时了解 C++ 和 Python 世界的最新动态。

推荐库