CVE-2026-55971 (CVSS 9.8) - Heap-based Buffer Overflow vulnerability in Apache Thrift C++ bindings. This is

CVE-2026-55971:Apache Thrift C++绑定堆缓冲区溢出漏洞,CVSS 9.8,远程未认证攻击者可利用特制消息触发远程代码执行。影响Thrift < 0.24.0。本文提供详细技术分析、攻击场景及修复建议。

🔥 热门漏洞情报 · NVD-Latest ·

CVE-2026-55971 (CVSS 9.8) - Heap-based Buffer Overflow vulnerability in Apache Thrift C++ bindings. This is

Critical · CVSS 9.8 堆溢出
CVE-2026-55971

📋 漏洞概述

Apache Thrift C++绑定存在堆缓冲区溢出漏洞(CVE-2026-55971),远程未认证攻击者可利用特制消息触发RCE。

📋 基础信息

受影响版本Apache Thrift C++ bindings before 0.24.0
漏洞类型堆溢出
CVSS9.8 · Critical
CVECVE-2026-55971

🔬 漏洞根因

在Thrift C++绑定的反序列化过程中,处理可变长度字段(如字符串或二进制数据)时未正确校验用户提供的长度值。攻击者可以构造一个超长的长度字段,导致在堆上分配过小缓冲区后进行memcpy或类似操作,从而发生堆缓冲区溢出。这通常源于对TLV(类型-长度-值)格式中长度字段的信任,缺乏边界检查。

🎯 攻击场景

1. 攻击者构造一个恶意的Thrift协议消息,在消息头或数据结构中填入远大于实际数据长度的数值(例如,长度字段设为0xFFFFFFFF)。 2. 攻击者通过TCP或HTTP向目标服务发送该消息(前提是服务监听并接受Thrift连接)。 3. 目标服务使用受影响版本的C++绑定接收并解析该消息,根据虚假长度分配一块远小于攻击者期望的堆缓冲区。 4. 在后续的数据拷贝过程中(如readString或readBinary),服务将攻击者提供的完整payload写入过小的堆缓冲区,导致溢出覆盖相邻的堆元数据或函数指针。 5. 攻击者通过精心构造溢出数据实现代码执行(如覆盖vtable指针或返回地址),从而获得远程代码执行权限。成功标志:攻击者在目标服务器上执行任意命令。

💥 漏洞影响

远程未认证攻击者可利用该漏洞实现远程代码执行(RCE),完全控制受影响服务器。由于Apache Thrift广泛应用于微服务通信、分布式系统(如Hadoop、Cassandra、Finagle等),影响范围广泛,可能导致数据泄露、服务中断或横向移动。

🛡️ 修复建议

立即升级Apache Thrift至版本0.24.0或更高版本。对于无法立即升级的系统,可采取临时缓解措施:在服务前端部署WAF,过滤异常大的长度字段;使用非C++的Thrift绑定(如Java或Python)作为过渡;限制Thrift服务的网络访问权限(如仅允许内网通信);启用ASLR和DEP/NX等系统级防护。

📎 参考链接

🚨 威胁评估

📈 EPSS 利用概率暂无数据
🚨 CISA KEV未被已知利用
🔧 公开 PoC暂无公开 PoC

⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-07-29 01:00 | 来源: NVD-Latest

🤖 常见问题解答(FAQ)

❓ 如何检测是否受该漏洞影响?

检查Thrift版本:运行`thrift --version`或查看依赖文件,若版本低于0.24.0且使用了C++绑定,则受影响。也可通过扫描暴露端口的Thrift服务,发送特制payload观察崩溃行为(需谨慎)。

❓ 临时缓解措施有哪些?

在入口处限制Thrift消息大小(如设置maxReadBufferBytes),或使用反向代理过滤异常长度字段;关闭不必要的Thrift服务;或切换至其他语言绑定(如Java、Go)直至升级。

❓ 该漏洞影响哪些业务场景?

所有使用Apache Thrift C++绑定进行RPC通信的服务,常见于大数据组件(Hive、HBase、Cassandra)、分布式追踪(Jaeger)、以及Facebook、Twitter等内部框架。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)