关键信息总结 TL;DR 漏洞编号: CVE-2021-22145 影响范围: Elasticsearch 7.10.0 - 7.13.3 根本原因: Jackson-core 版本 < 2.13.0 中的 类在处理共享缓冲区时,错误地将前500字节的数据添加到异常消息中。 修复时间: 2021年9月30日,Jackson-core 2.13.0 发布修复。 背景与漏洞描述 受影响版本: Elasticsearch 7.10.0 - 7.13.3 问题描述: 当 Jackson 解析器读取共享缓冲区的一片数据并抛出 时,错误消息构建器会忽略给定的偏移量和长度,直接将缓冲区前500字节的内容添加到异常文本中。这可能导致敏感数据(如认证凭据)泄露。 根因分析 Jackson中的问题代码: 问题核心: 是整个缓冲区,方法应尊重提供的偏移量和长度,但实际从索引0开始构造片段。 修复措施 修复提交: 在 Jackson-core 2.13.0 中,代码被修改为正确切片缓冲区: 利用场景 1. 攻击者通过HTTP请求发送畸形JSON,触发 。 2. 异常消息包含前500字节的缓冲区内容,可能包含敏感数据。 3. 服务器返回400错误响应,攻击者从中读取泄露的信息。 最小复现示例 (JUnit 5) 缓解建议 1. 升级 Jackson 至 2.13.0 或更高版本。 2. 临时措施: - 禁用 特性。 - 在解析前复制负载到新缓冲区。 3. 过滤异常消息,避免向客户端返回原始解析错误。