Linux内核现越界访问漏洞(CVE-2024-53141),或致权限提升与内核沦陷

网络安全 潘老师 5天前 17 ℃ (0) 扫码查看

最近,安全研究员公开了Linux内核中一个漏洞(CVE-2024-53141)的技术细节,还公布了概念验证性利用代码,这个漏洞可不简单,一起来了解一下。

一、漏洞基本情况

这个漏洞出在Linux内核的netfilter子系统的ipset组件里,是一个严重的越界(OOB)访问缺陷。用通用漏洞评分系统(CVSS)来评估,它的得分达到了7.8分,属于比较严重的漏洞。追溯其根源,是bitmap_ip_uadt函数里出了问题。在处理IPSET_ATTR_CIDR参数的时候,没有进行范围检查,这就给了漏洞可乘之机。

在一些特定情况下,比如说tb[IPSET_ATTR_IP_TO]不存在,但tb[IPSET_ATTR_CIDR]存在时,ip和ip_to的值会发生交换,同时对ip关键的范围检查也被跳过了,这就导致了内存越界访问的风险。

二、漏洞危害

内存越界访问可不是小问题,攻击者利用这个漏洞,可以在正常内存边界之外对数据进行操作,进而引发一系列严重的安全问题。

  1. 内核崩溃:攻击者的越界操作可能破坏内核的正常运行环境,导致内核崩溃,让整个系统无法正常工作。
  2. 权限提升:攻击者有可能利用这个漏洞,突破原本的权限限制,获取更高的权限,比如从普通用户权限提升到管理员权限(root权限)。
  3. 任意代码执行:这意味着攻击者可以在系统中执行他们自己编写的恶意代码,对系统进行各种恶意操作,如窃取数据、破坏文件等。

三、漏洞利用过程

安全报告里详细描述了这个漏洞的利用过程,主要分为多个阶段。

  1. 堆泄漏:在注释初始化路径(ip_set_init_comment())的时候,攻击者会构造一个恶意的e.id。通过这个恶意数据向相邻的堆块(比如套接字缓冲区)写入内容,从而获取内核堆地址,就像在系统的“仓库”里找到了关键的“线索”。
  2. 越界写入任意值:攻击者通过操纵计数器(ip_set_init_counter()),可以把精心构造的数据写入到正常内存边界之外的区域,这样就能修改堆上的控制结构,相当于改变了系统“仓库”里货物的存放规则。
  3. 释放后重用:攻击者借助msg_msgseg巧妙地调整内存布局,把越界条件转化为释放后重用的机会。他们可以回收已经释放的内核内存,为进一步控制程序执行流程做好准备,就像重新利用废弃的资源来达到自己的目的。

攻击者借助堆泄漏获取的信息,计算出内核的基地址,然后覆盖像pipe_buffer->ops这类关键的控制结构。最后,攻击者利用经典的core_pattern技术,修改决定进程崩溃时执行内容的内核字符串。通过把core_pattern指向用户控制的二进制文件,攻击者就能获得root shell权限,完全控制整个系统。

四、受影响范围及解决办法

这个漏洞影响的内核版本范围比较广,从v2.7到v6.12的内核都在受影响之列。目前,在GitHub上已经能找到针对这个漏洞的有效PoC(概念验证代码),这也意味着攻击者利用这个漏洞的门槛在降低。

要解决这个漏洞带来的风险,最有效的办法就是及时把Linux内核更新到已经修复了范围检查问题的版本,补上这个安全“缺口”,保护系统的安全。大家一定要重视起来,及时更新内核,避免遭受攻击。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/safe/17587.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】