他们发现了eBPF子系统中的漏洞,这些漏洞允许在内核级别执行代码 

最近 我们在博客上分享有关Microsoft表现出兴趣的新闻 关于子系统 eBPF, 由于它已经为Windows构建了一个子系统,该子系统使用了抽象解释静态分析方法,与Linux的eBPF检查器相比,该方法显示出较低的误报率,支持循环分析,并提供了良好的可伸缩性。

该方法考虑了从现有eBPF程序分析中获得的许多典型性能模式。 此eBPF子系统 从3.18版开始,Linux内核已包含该版本,并且 它使您可以处理传入/传出的网络数据包,转发数据包,控制带宽,拦截系统调用,控制访问和监视。

那是在谈论它吗,最近发现 确定了两个新漏洞 在子系统中 eBPF,它使您可以在特殊的JIT虚拟机中的Linux内核中运行驱动程序。

这两个漏洞都提供了运行具有内核权限的代码的机会, 在隔离的eBPF虚拟机外部。

信息 关于问题 由零日倡议团队发布, 在Pwn2Own竞赛中,该竞赛今年进行了XNUMX次针对Ubuntu Linux的攻击,其中使用了以前未知的漏洞(如果eBPF中的漏洞与这些攻击有关,则不会报告)。

发现eBPF ALU32限制了按位运算(AND,OR和 XOR)32位限制未更新。

RedRocket CTF团队(@redrocket_ctf)的Manfred Paul(@_manfp)与他一起工作趋势科技的“零日”举措发现了此漏洞 它可以转换为内核中的读写范围。 这是 报告为ZDI-CAN-13590,并指定为CVE-2021-3490。

  • CVE-2021-3490: 该漏洞是由于在eBPF ALU32上执行按位AND,OR和XOR操作时缺乏对32位值的越界验证的缘故。 攻击者可以利用此bug来读取和写入超出分配的缓冲区限制的数据。 从内核5.7-rc1开始就存在XOR操作的问题,从5.10-rc1开始一直存在与和或问题。
  • CVE-2021-3489: 该漏洞是由环形缓冲区实现中的错误引起的,并且与bpf_ringbuf_reserve函数没有检查分配的内存区域的大小小于ringbuf缓冲区的实际大小的可能性有关。 自5.8-rc1发布以来,该问题就很明显了。

另外, 我们还可以观察到Linux内核中的另一个漏洞:CVE-2021-32606,其中 允许本地用户将其特权提升到根级别。 该问题自Linux内核5.11以来就很明显,并且是由于CAN ISOTP协议实施中的竞争状况引起的,由于缺乏在i中正确锁定的配置,因此可以更改套接字绑定参数。sotp_setsockopt() 当标志被处理时 CAN_ISOTP_SF_BROADCAST.

一旦 插座,ISOTP 继续绑定到接收器套接字,在释放关联的内存后,接收者套接字可以继续使用与套接字关联的结构(由于结构调用,使用后释放) isotp_sock 我打电话时已经释放sotp_rcv()。 通过处理数据,您可以覆盖函数的指针 sk_error_report() 并在内核级别运行您的代码。

可以在以下页面上跟踪发行版中漏洞的修复状态: Ubuntu, Debian, RHEL, Fedora, SUSE,).

该修补程序也可以作为补丁提供(CVE-2021-3489和CVE-2021-3490)。 问题的利用取决于用户对eBPF系统的呼叫可用性。 例如,在RHEL的默认设置中,利用此漏洞要求用户具有CAP_SYS_ADMIN特权。

最后 如果您想了解更多, 您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。