漏洞概述

在 Linux 内核中,sock_recv_errqueue 函数存在一个 hardened usercopy 相关的崩溃漏洞。当启用 CONFIG_HARDENED_USERCOPY 配置选项时,内核在通过 sock_recv_errqueue() → put_cmsg() 将 sk_buff.cb 数据复制到用户空间时,会因 skbuff_fclone_cache 缺少 usercopy 白名单区域而触发 kernel BUG(),导致系统崩溃。

漏洞详情

  • CVE 编号:CVE-2026-22977
  • 漏洞类型:内核内存安全漏洞(Hardened Usercopy 违规)
  • CVSS 评分:暂无(NVD 尚未发布评分)
  • 影响版本:受影响的 Linux 内核版本(具体需参考补丁提交记录,涉及使用 skbuff_fclone_cache 且未修复此问题的版本)

影响范围

该漏洞影响启用了 CONFIG_HARDENED_USERCOPY 的 Linux 内核系统,特别是在使用 TCP 时间戳报告并通过 recvmsg(MSG_ERRQUEUE) 读取错误队列的场景下。攻击者可通过构造特定网络流量触发内核崩溃,导致拒绝服务(DoS)。

风险分析

该漏洞可被本地或远程攻击者利用,通过触发 sock_recv_errqueue 路径中的 put_cmsg() 调用,导致内核因 hardened usercopy 检查失败而 panic。虽然目前未发现远程代码执行(RCE)能力,但可造成系统崩溃,构成拒绝服务风险,尤其在高可用性或关键基础设施环境中危害显著。

修复建议

  • 升级至包含修复补丁的 Linux 内核版本。官方已在多个稳定分支中提交修复,包括 commit 005671c60fcf2a71a1a8d0ed 等(详见参考链接)。
  • 若无法立即升级,可考虑临时禁用 CONFIG_HARDENED_USERCOPY(不推荐,会降低系统整体安全性)或限制非特权用户访问可能触发该路径的 socket 接口。

参考链接