CVE-2026-43407该漏洞存在于 Linux Kernel 的 libceph 模块中。在处理 CEPH_MSG_AUTH_REPLY 类型消息时,ceph_handle_auth_reply 函数将 payload_len 存储在 int 类型变量中。如果该值超过 INT_MAX,会导致整数溢出变为负数,进而导致指针回绕和越界内存访问。攻击者无需认证即可通过网络触发此漏洞,可能导致系统崩溃或信息泄露。
漏洞根源在于 ceph_handle_auth_reply() 函数中对消息长度字段的处理不当。该函数从网络消息中读取 payload_len 字段,并将其赋值给一个 int 类型的变量。由于 int 是有符号的,当接收到的长度值大于 INT_MAX 时,会发生整数溢出,使得变量值变为负数。随后,代码使用 ceph_decode_need() 检查内存访问边界。然而,由于指针递减操作(由负数长度导致),该检查未能正确捕获越界访问,导致程序读取了分配内存之外的地址。攻击者可以通过发送特制的恶意消息来触发此漏洞,利用网络攻击向量且无需用户交互和认证。成功利用可能导致信息泄露或拒绝服务。