文章总结: 本文分析了LinuxKernelNF_TABLES模块中的Use-After-Free提权漏洞CVE-2026-23111,该漏洞由事务回滚机制中的逻辑取反错误导致,攻击者可通过反复触发abort路径实现本地权限提升。影响范围涵盖Linux内核6.4及之后多个LTS版本,修复方案为删除代码中的一个多余感叹号。建议用户立即升级至已修复版本,并参考官方补丁进行防护。 综合评分: 85 文章分类: 漏洞分析,漏洞预警,应急响应,红队,解决方案
【利用已复现】一个“!”引发的“血案”(Linux Kernel NF_TABLES模块提权漏洞)
原创
360漏洞研究院 360漏洞研究院
360漏洞研究院
2026年4月22日 12:04 四川
在小说阅读器读本章
去阅读
“扫描下方二维码,进入公众号粉丝交流群。更多一手网安资讯、漏洞预警、技术干货和技术交流等您参与!”
Linux Kernel NF_TABLES 模块曝出 Use-After-Free 提权漏洞(CVE-2026-23111,CVSS 7.8),攻击者通过利用事务回滚机制中的逻辑缺陷,可实现非特权用户提权,获取系统最高权限。
目前 360漏洞挖掘智能体已成功复现该漏洞。本文包含完整影响范围、修复方案、技术原理与复现细节,建议用户立即升级。
| | | | | | — | — | — | — | | 漏洞概述 | | | | | 漏洞名称 | Linux Kernel NF_TABLES模块Use-After-Free提权漏洞 | | | | 漏洞编号 | CVE-2026-23111 | | | | 公开时间 | 2026-02-13 | POC状态 | 已公开 | | 漏洞类型 | 权限提升 | EXP状态 | 未公开 | | 利用可能性 | 高 | 技术细节状态 | 已公开 | | CVSS 3.1 | 7.8 | 在野利用状态 | 未发现 |
01
漏洞影响范围
受影响版本:
该漏洞在 Linux 内核 6.4 版本中被引入,从 6.4 开始的主线版本在修复之前均受到影响,具体修复版本如下所示:
- 在 5.15 LTS 分支中,5.15.200 及之后版本已修复;
- 在 6.1 LTS 分支中,6.1.163 及之后版本已修复;
- 在 6.6 LTS 分支中,6.6.124 及之后版本已修复;
- 在 6.12 LTS 分支中,6.12.70 及之后版本已修复;
- 在 6.18 LTS 分支中,6.18.10 及之后版本已修复
02
修复建议
正式防护方案
官方发布了正式的修复Patch,详情如下:
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.cindex c3613d8e7d725..3bf88c137868a 100644--- a/net/netfilter/nf_tables_api.c+++ b/net/netfilter/nf_tables_api.c@@ -5700,7 +5700,7 @@ staticvoidnft_map_catchall_activate(const struct nft_ctx *ctx,
list_for_each_entry(catchall, &set->catchall_list, list) { ext = nft_set_elem_ext(set, catchall->elem);- if (!nft_set_elem_active(ext, genmask))+ if (nft_set_elem_active(ext, genmask))continue;
nft_clear(ctx->net, ext);
在Patch中删除一个”!”字符,执行了正确的逻辑,修复问题。
03
漏洞描述
近期,有研究人员公开了CVE-2026-23111的漏洞详情,以及利用方法。经过深入分析,360漏洞研究院复现了该漏洞的利用。
Linux内核nf_tables子系统中nft_map_catchall_activate()函数存在一个逻辑取反错误。该函数在事务Abort(回滚)阶段被调用,用于重新激活在失败事务的Prepare阶段被停用的catchall map元素。然而,由于条件判断中多了一个”!”取反符号,导致函数跳过了需要重新激活的非活跃元素。
这一逻辑错误导致对于包含NFT_GOTO裁决的catchall元素,nft_data_hold()永远不会被调用来恢复chain->use引用计数。攻击者可以通过反复触发abort路径来持续递减chain->use,最终使其归零。此时,攻击者可以成功删除该chain,导致chain结构体被释放,而仍有map元素引用该chain的指针,形成Use-After-Free。该漏洞可被本地非特权用户利用实现本地权限提升(LPE)。
背景知识
nf_tables使用以下方式提交事务模型:
-
Prepare阶段构建下一代对象状态,
-
Commit阶段翻转gencursor激活新一代,
-
Abort阶段按反序撤销Prepare阶段的操作。
genmask机制:使用2位位掩码(genmask)跟踪对象在不同代中的活跃状态。genmask中的位被置位表示对象在该代中不活跃。当元素活跃nft_set_elem_active()返回true。
chain->use引用计数:记录引用该chain的跳转/goto数量,只有use==0时chain才可删除。Map的catchall元素如包含”goto mychain”裁决,会增加mychain->use。
根因分析
漏洞位于net/netfilter/nf_tables_api.c的nft_map_catchall_activate()函数。
if (!nft_set_elem_active(ext, genmask)) // BUG: 多了一个 "!" continue;
nft_map_catchall_activate()函数中调用nft_set_elem_active(ext, genmask)进行条件判断多了一个”!”取反。导致Abort阶段跳过需要重新激活的不活跃元素,nft_setelem_data_activate()(含nft_data_hold()恢复chain->use)永远不被调用。每次abort循环永久递减chain->use,使其最终归零后chain可被释放,形成UAF。
04
漏洞复现
360 漏洞研究院已在 Ubuntu 24.04 环境下完成漏洞验证。该系统使用了linux-6.12内核源代码,编译后作为目标内核;使用Ubuntu noble作为根文件系统;使用qemu启动执行目标系统。通过在目标系统中以非特权用户执行利用代码获取root权限。
CVE-2026-23111
Linux Kernel NF_TABLES模块Use-After-Free提权漏洞复现
05
时间线
2026年04月22日,360漏洞研究院发布本安全风险通告。
06
参考链接
https://www.cve.org/CVERecord?id=CVE-2026-23111
Reproducing CVE-2026-23111: How one character can change everything
07
更多漏洞情报
建议您订阅360数字安全-漏洞情报服务,获取更多漏洞情报详情以及处置建议,让您的企业远离漏洞威胁。
邮箱:[email protected]
网址:https://vi.loudongyun.360.net
“洞”悉网络威胁,守护数字安全
关于我们
360 漏洞研究院,隶属于360数字安全集团。其成员常年入选谷歌、微软、华为等厂商的安全精英排行榜, 并获得谷歌、微软、苹果史上最高漏洞奖励。研究院是中国首个荣膺Pwnie Awards“史诗级成就奖”,并获得多个Pwnie Awards提名的组织。累计发现并协助修复谷歌、苹果、微软、华为、高通等全球顶级厂商CVE漏洞3000多个,收获诸多官方公开致谢。研究院也屡次受邀在BlackHat,Usenix Security,Defcon等极具影响力的工业安全峰会和顶级学术会议上分享研究成果,并多次斩获信创挑战赛、天府杯等顶级黑客大赛总冠军和单项冠军。研究院将凭借其在漏洞挖掘和安全攻防方面的强大技术实力,帮助各大企业厂商不断完善系统安全,为数字安全保驾护航,筑造数字时代的安全堡垒。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:360漏洞研究院 360漏洞研究院 360漏洞研究院《【利用已复现】一个“!”引发的“血案”(Linux Kernel NF_TABLES模块提权漏洞)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论