CVE-2026-22992CVE-2026-22992是Linux内核libceph模块中的一个高危安全漏洞,CVSS评分达到7.5分。该漏洞源于mon_handle_auth_done()函数未能正确返回ceph_auth_handle_reply_done()的错误处理结果。当认证过程中发生错误时,虽然finish_auth()能够传播错误信息,但mon_handle_auth_done()并不返回这些错误,导致上层应用层知道认证阶段出现问题,但msgr2(消息协议第二版)仍然尝试在后台继续建立会话。在安全模式下,这会触发setup_crypto()中的WARN警告,并最终导致prepare_auth_signature()函数内部发生空指针解引用,从而引发内核崩溃或拒绝服务。攻击者可以通过构造特定的认证响应来触发此漏洞,无需任何认证即可远程利用,对系统的机密性、完整性和可用性造成严重影响。
该漏洞的技术根本原因在于libceph的认证错误处理流程存在缺陷。在Linux内核的ceph认证协议实现中,ceph_auth_handle_reply_done()函数处理认证回复时可能返回错误,这些错误通过finish_auth()传播到mon_handle_auth_done()调用者。然而,mon_handle_auth_done()函数没有将错误返回值传递给调用者,导致认证失败被忽略。攻击者可以利用这一点,向目标系统发送精心构造的认证响应,触发认证处理中的错误条件。在安全模式下,错误处理流程中的空指针解引用发生在prepare_auth_signature()函数中,攻击者可以通过控制认证响应来触发此条件,最终导致内核崩溃或可能实现代码执行。