CVE-2026-22984CVE-2026-22984是Linux内核中libceph组件的一个高危安全漏洞,CVSS评分达到9.8分(严重级别)。该漏洞存在于ceph认证处理流程中的handle_auth_done()函数,由于缺少对payload_len参数的边界检查,可能导致攻击者利用精心构造的认证响应消息触发越界读取(Out-of-Bounds Read)漏洞。攻击者可以通过向目标系统发送恶意构造的CEPH认证消息,在未授权的情况下读取内核内存中的敏感数据,包括可能存在的密钥材料、认证凭证或其他敏感信息。这种信息泄露可能被用于进一步的攻击,如横向移动或权限提升。漏洞影响所有使用libceph进行Ceph集群通信的Linux系统,包括Ceph存储节点和客户端。由于该漏洞无需认证即可利用,且具有网络可利用性,对使用Ceph存储解决方案的企业和组织构成了严重安全威胁。
该漏洞位于Linux内核的net/ceph目录下的libceph组件中,具体在auth.c或auth_none.c等认证处理相关文件中。handle_auth_done()函数负责处理Ceph认证响应消息中的payload数据。在处理过程中,函数直接使用消息中携带的payload_len值进行内存访问操作,而没有首先验证该长度值是否在合理范围内或是否超过预分配缓冲区的边界。攻击者可以通过向Ceph客户端或守护进程发送精心构造的认证响应消息,设置异常的payload_len值。当handle_auth_done()函数使用此值进行内存访问时,可能导致以下问题:1) 读取超出预分配缓冲区边界的数据;2) 访问未映射的内存区域引发内核崩溃(DoS);3) 读取内核堆内存中的敏感数据。漏洞的修复方案是在使用payload_len之前添加显式的边界检查,确保其值不超过预期范围且符合协议规范。相关补丁已在多个内核稳定版本中推送,包括commit 194cfe2af4d2a1de599d39dad636b47c2f6c2c96等。