KeyDB 模块集群消息接收器中的全局缓冲区溢出
作者: entropy1337创建于 2026年8月28日更新于 2026年8月28日
摘要 KeyDB 将模块集群消息接收器存储在 static moduleClusterReceiver *clusterReceivers[UINT8_MAX]; (src/module.cpp:6184) 中 — — 一个包含 255 个元素 (索引 0..254) 的数组。集群消息类型为 uint8_t (0..255)。注册路径 (RM_RegisterClusterMessageReceiver) 和分发路径 (moduleCallClusterReceivers) 都使用完整的 0..255 范围来索引 clusterReceivers[type],因此类型为 255 时读写了数组中的一个元素 — — 这是在全局缓冲区上超出范围的访问。通过 CLUSTERMSG_TYPE_MODULE 数据包从已知对端访问的集群总线 → 节点崩溃 (DoS)。
内容来源: Snapchat/KeyDB