IPBUF安全漏洞报告
English
CVE-2026-43329 CVSS 7.8 高危

CVE-2026-43329: Linux内核netfilter流表操作数越界漏洞

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

漏洞信息

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

相关标签

Linux KernelNetfilterFlowtableIPv6边界条件错误DoS本地提权

漏洞概述

Linux内核netfilter flowtable组件存在安全漏洞。在IPv6硬件卸载场景下,系统未严格检查最大操作数。由于以太网修改、SNAT、DNAT、QinQ VLAN及重定向等操作总和可能达到17个,超过了原先的16个限制。这可能导致缓冲区溢出或内核崩溃。该漏洞通过将操作数上限提升至24来修复。

技术细节

漏洞位于Linux内核netfilter子系统flowtable模块中。在IPv6环境下,由于地址长度为128位,修改IPv6地址需要4个payload操作。当配置包含以太网头修改、SNAT、DNAT、Double VLAN (QinQ)及重定向的复杂流规则时,总操作数计算为17(4+4+4+4+1),超过了代码中定义的NF_FLOW_TABLE_ACTION_CNT_MAX(16)。由于缺乏严格的边界检查,低权限攻击者可通过创建特定的网络流量和规则触发此越界。这可能导致flow_action_entry数组溢出,进而造成内核崩溃(DoS)或潜在的代码执行风险。修复补丁通过在flow_action_entry_next()调用中增加严格检查,并将最大操作数阈值从16提升至24,解决了IPv6 setup下的越界问题。

攻击链分析

STEP 1
侦察与访问
攻击者获得目标Linux系统的本地低权限访问,确认系统启用了IPv6及netfilter flowtable硬件卸载功能。
STEP 2
规则配置
攻击者利用nftables或netlink接口配置复杂的网络规则,组合以太网修改、SNAT、DNAT、QinQ VLAN堆叠及重定向操作,使总操作数达到17。
STEP 3
触发漏洞
攻击者发送符合上述规则特征的IPv6网络流量,促使内核为该流构建硬件卸载操作。
STEP 4
溢出与影响
内核在写入操作时超过预设的16个元素数组边界,导致数组越界访问,引发内核崩溃(DoS)或潜在的内存读写破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for CVE-2026-43329 * Triggering the flowtable action limit overflow in Linux Kernel Netfilter. * This requires a system with IPv6, netfilter flowtable, and HW offload support. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main() { printf("[+] PoC for CVE-2026-43329: Netfilter Flowtable Action Overflow\n"); printf("[+] Attempting to configure rules that exceed action limit (17 > 16)\n"); // In a real exploit scenario, the attacker would use netlink or libcalls to: // 1. Create a bridge/interface with HW offload support. // 2. Configure an IPv6 flowtable. // 3. Add a rule with: Ethernet Mangling + SNAT + DNAT + QinQ + Redirect. // Total actions = 4 (Eth) + 4 (SNAT) + 4 (DNAT) + 4 (VLAN) + 1 (Redir) = 17. // Pseudo-code for rule creation // system("nft add table ip6 filter"); // system("nft add flowtable ip6 filter f { hook ingress priority 0 ; devices = { eth0 } ; }"); // system("nft add chain ip6 filter forward { type filter hook forward priority 0 ; }"); // system("nft add rule ip6 filter forward flow offload @f"); // (Assuming traffic matches complex NAT/VLAN criteria) printf("[!] Triggering traffic to cause kernel panic or memory corruption...\n"); // send_specific_ipv6_traffic(); return 0; }

影响范围

Linux Kernel < commit 504c9456699dcf4d15195ef34a0fa94a80bfc877
Linux Kernel < commit 5382bb03e9c33b089d60788478b922a2dca284cc
Linux Kernel < commit 57c78bd2e2dd08897acd35b2bf8bcef322e36f5e
Linux Kernel < commit 76522fcdbc3a02b568f5d957f7e66fc194abb893
Linux Kernel < commit 879959a7a2be814dd57568655eafa3d8f4d0309e

防御指南

临时缓解措施
如果无法立即升级内核,建议临时禁用IPv6 flowtable的硬件卸载功能,或者避免配置同时包含SNAT、DNAT和QinQ的复杂流规则,以降低触发漏洞的风险。

参考链接