Part01
漏洞概述
Linux内核netfilter的ipset子系统中发现一个高危漏洞,允许本地攻击者将权限提升至root级别。该漏洞存在于ipset框架的bitmap:ip实现中,源于处理CIDR格式IP地址范围时缺乏足够的范围验证。由于缺少边界检查,攻击者可触发内核空间的越界内存写入,最终实现完全控制系统。
关键要点
- Linux内核netfilter的ipset子系统存在高危漏洞,可触发越界内存写入
- 具备本地访问权限的攻击者可利用此漏洞获取root权限
- 应立即更新至已修复的内核版本
Part02
技术细节
该漏洞影响6.12.2及之前版本的内核,最新补丁已通过在所有代码路径实施适当的范围验证来解决此问题。
根据SSD安全披露报告,该安全缺陷位于net/netfilter/ipset/ip_set_bitmap_ip.c文件中的bitmap_ip_uadt函数。当通过netfilter netlink接口使用CIDR表示法指定IP范围时,漏洞代码路径未能验证计算得出的IP范围是否位于分配的bitmap边界内。

根本原因在于当tb[IPSET_ATTR_CIDR]属性存在而tb[IPSET_ATTR_IP_TO]缺失时,ip_set_mask_from_to函数基于CIDR掩码计算新的ip和ip_to值,但不同于显式范围的情况,此时没有验证确保结果ip值不低于map->first_ip。精心构造的CIDR值可导致整数下溢,进而在bitmap操作中将计算出的索引从u32截断为u16时引发越界数组访问。
Part03
利用方式与影响
利用此漏洞需要本地访问权限但无需特殊权限,这使得它在多用户环境或容器化系统中尤为危险。攻击者可通过netfilter netlink套接字接口发送恶意构造的ipset命令来触发漏洞代码路径。

攻击技术涉及创建多个bitmap:ip对象以建立可预测的内存布局,然后利用越界写入原语覆盖关键内核数据结构。特别是,攻击者可修改相邻bitmap_ip对象的members指针,将有限的写入原语转变为任意内存写入能力。概念验证展示了如何覆盖控制核心转储处理的core_pattern内核参数,使攻击者在触发段错误时能以root权限执行任意命令。
Part04
修复建议
该漏洞的影响不仅限于简单的权限提升,成功利用将赋予攻击者对受影响系统的完全控制权,包括安装rootkit、修改系统配置、访问敏感数据以及可能横向渗透到网络上的其他系统。

运行受影响内核版本的组织应优先应用可用补丁,该补丁通过实施全面的范围验证来解决此问题,无论IP范围如何指定,都会检查ip < map->first_ip和ip_to > map->last_ip条件。
参考来源:
Linux Kernel netfilter Vulnerability Let Attackers Escalate Privileges
https://cybersecuritynews.com/linux-kernel-netfilter-vulnerability/
文章来源:FreeBuf














暂无评论内容