他们在Linux eBPF子系统中发现了一个漏洞

最近有消息说 发现漏洞 (CVE-2021-29154)在eBPF子系统中,其中p允许您运行跟踪,子系统分析和流量控制控制器 在特殊的JIT虚拟机中的Linux内核中运行, 允许本地用户在内核级别运行您的代码。

根据发现漏洞的研究人员的说法,他们能够为86位和32位x64系统开发可利用的漏洞利用原型,供无特权的用户使用。

与此同时, 红帽指出,问题的严重程度取决于eBPF系统调用的可用性。 为用户。 例如,默认情况下,在RHEL和大多数其他Linux发行版上,启用BPF JIT并且用户具有CAP_SYS_ADMIN权限时,可以利用此漏洞。

在Linux内核中发现了一个可以滥用的问题
非特权本地用户升级特权。

问题是BPF JIT编译器如何为某些体系结构计算
生成机器代码时的分支偏移量。 这可能会被滥用
创建异常的机器代码并以内核模式运行它,
控制流被劫持以执行不安全的代码。

就是他们详细说明了 该问题是由计算分支指令的偏移量时生成的错误引起的 在生成机器代码的JIT编译器中。

特别要提到的是,在生成分支指令时,并未考虑位移在经过优化阶段后可能发生变化的情况,因此该故障可用于生成异常的机器代码并在内核级别执行。

应该指出的是 这不是eBPF子系统中近年来唯一已知的唯一漏洞, 自XNUMX月底以来,内核中又发现了两个漏洞 (CVE-2020-27170,CVE-2020-27171),提供使用eBPF绕过Spectre类漏洞的保护的功能,该功能允许确定内核内存的内容,并导致为某些操作的推测执行创建条件。

Spectre攻击要求特权代码中存在特定的命令序列,从而导致指令的推测执行。 在eBPF中,发现了几种方法 通过为执行而传输的BPF程序进行操作来生成此类指令。

  • CVE-2020-27170漏洞是由BPF检查器中的指针操作引起的,该操作导致推测性操作访问缓冲区外部的区域。
  • CVE-2020-27171漏洞与使用指针时的整数下溢错误有关,从而导致对缓冲区外数据的推测访问。

这些问题已在内核版本5.11.8、5.10.25、5.4.107、4.19.182和4.14.227中得到修复,并且已包含在大多数Linux发行版的内核更新中。 研究人员已经准备了一个漏洞利用原型,它允许没有特权的用户从内核内存中检索数据。

关于其中一种解决方案 红帽内部提出的建议是:

减轻:

默认情况下,此问题不会影响大多数系统。 管理员必须已使BPF JIT受到影响。

可以使用以下命令立即禁用它:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

或者可以通过在/etc/sysctl.d/44-bpf -jit-disable中设置一个值来禁用所有后续系统引导

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

最后 如果您有兴趣了解更多信息 关于此漏洞,您可以在 以下链接。

值得一提的是,该问题一直持续到5.11.12版(含)为止,即使已进行了更正,但在大多数发行版中尚未解决。 可作为补丁使用。


发表您的评论

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

*

*

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