在 Linux 内核的 TIPC 实现中发现了一个漏洞

最近有消息说 一名安全研究人员发现了一个关键漏洞 (已在 CVE-2021-43267 下列出) TIPC网络协议的实现 在 Linux 内核中提供,它允许通过发送特制的网络数据包以内核权限远程执行代码。

由于攻击需要在系统上显式启用 TIPC 支持(通过加载和配置 tipc.ko 内核模块)这一事实减轻了该问题的危险,这在非 Linux 发行版上默认不进行。

CodeQL 是一种分析引擎,可让您对代码运行查询。 从安全角度来看,这可以让您通过描述漏洞的外观来找到漏洞。 然后,CodeQL 将上线并找到该漏洞的所有实例。

从 Linux 3.19 内核开始就支持 TIPC,但导致漏洞的代码包含在 5.10 内核中。. TIPC协议最初由爱立信开发,旨在组织集群中的进程间通信,主要在集群的节点上激活。

国际贸易委员会 可以通过以太网和 UDP 工作 (网络端口 6118)。 在通过以太网工作的情况下,攻击可以从本地网络进行,当使用 UDP 时,如果端口没有被防火墙覆盖,则可以从全局网络进行攻击。 该攻击也可以由没有主机权限的本地用户执行。 要启用 TIPC,您必须加载 tipc.ko 内核模块并使用 netlink 或 tipc 实用程序配置到网络接口的链接。

该协议在与所有主要 Linux 发行版捆绑在一起的内核模块中实现。 当由用户加载时,它可以用作连接器,并且可以在使用 netlink(或使用用户空间工具tipc,它将进行这些 netlink 调用)的接口中配置为非特权用户。

TIPC 可以配置为通过承载协议运行,例如以太网或 UDP(在后一种情况下,内核在端口 6118 上侦听来自任何机器的传入消息)。 由于低权限用户无法创建原始以太网帧,因此将承载设置为 UDP 可以轻松编写本地漏洞利用程序。

该漏洞表现在tipc_crypto_key_rc函数中,是由于缺乏适当的验证造成的 在分析具有 MSG_CRYPTO 类型的数据包时,标头中指定的内容与数据的实际大小之间的对应关系,用于从集群中的其他节点获取加密密钥,以便稍后解密从这些节点发送的消息。

复制到内存中的数据大小计算为字段值与消息大小和头部大小的差值,但不考虑传输的加密算法名称的实际大小在消息和密钥的内容中。

假设算法名的大小是固定的,另外为key传递了一个单独的具有大小的属性,攻击者可以在这个属性中指定一个与实际值不同的值,这将导致写入已分配缓冲区中的消息队列。

该漏洞已在内核 5.15.0、5.10.77 和 5.14.16 中得到修复,尽管该问题在 Debian 11、Ubuntu 21.04 / 21.10、SUSE(在尚未发布的 SLE15-SP4 分支中)、RHEL(尚未详细说明是否已更新易受攻击的解决方案)和 Fedora 中出现且尚未修复。

虽然 Arch Linux 的内核更新已经发布 内核版本低于 5.10 的发行版(例如 Debian 10 和 Ubuntu 20.04)不受影响。

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


发表您的评论

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

*

*

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