漏洞关键信息 漏洞类型: 整数下溢 (Integer Underflow) 受影响版本: >=2.4.0 修补版本: 2.5.0 CVE ID: CVE-2021-3323 CVSS 评分: 8.3/10 发布日期: 2021-10-13 漏洞描述 漏洞描述: 未检查网络数据包大小导致在 中发生整数下溢,导致 边界损坏。 漏洞后果: 结构的大小字段下溢,显著增大了网络缓冲区的假定大小,在 IPv6 功能中导致越界访问。 影响: 越界访问在 IPv6 解析逻辑中发生,怀疑可以通过发送 IPv6 数据包(如恶意分片的 ICMPv6 Ping 请求)进行任意代码执行。 漏洞细节 受影响代码: 中的头部解压缩逻辑。 漏洞原因: 1. 缺少检查以确保有足够的缓冲区尾部空间可用于存放压缩后的数据。 2. Fuzzing 发现了相反情况下的另一个 bug,即头部不能解压缩到现有缓冲区。 3. 缺乏缓冲区大小检查导致缓冲区长度变为负数,后续被解释为巨大的未签名数字,导致网络缓冲区过大。 漏洞代码路径 1. -> -> -> 2. -> 3. -> -> -> 4. -> -> 5. -> 修复建议 1. 计算期望的未压缩头部大小后,检查缓冲区内是否有足够的空间。 2. 单个数据包片段可能不代表整个数据包,考虑多片段支持。 3. 修改代码检查缓冲区大小并进行适当的错误处理。 补丁信息 修补提交: #31971 版本: v1.14: 未修补 (NA)