性能文章>Linux 内核出现 TIPC 漏洞,具有远程代码执行风险>

Linux 内核出现 TIPC 漏洞,具有远程代码执行风险原创

https://a.perfma.net/img/3110416
3年前
232200

透明进程间通信(TIPC、Transparent Inter Process Communication)是一种用于进程间通信的网络通信协议,原本是为集群间通信特别设计的。该协议在主要 Linux 发行版的内核模块包中实现。

近日,SentinelLabs 在使用 CodeQL 进行开源项目的 bug 搜索调查时发现 TIPC 模块中存在一个严重的漏洞。CodeQL 是一个语义代码分析引擎,允许开发者像查询数据一样查询代码。

该漏洞表现为:Linux 内核的 TIPC 模块中存在一个关键的堆溢出安全漏洞,可以被黑客以本地或远程的方式利用,以获得内核级权限并执行任意代码,进而导致系统完全被破坏。

083348_b5rQ_4252687.png

TIPC 是一个点对点协议,由 Linux 集群内的节点以一种优化的方式相互通信;它可以实现各种类型的消息,用于不同的目的。根据 SentinelLabs 的研究调查,有关的漏洞(CVE-2021-43267)存在于一种允许节点相互发送加密密钥的 MSG_CRYPTO 消息类型中。

SentinelLabs 的研究员 Max Van Amerongen 表示,“当被用户加载时,TIPC 可以作为一个套接字使用,并可以在接口上配置。所有的消息构建和解析都是在内核中进行的,这使得它成为了攻击者的理想目标。”

当涉及到该消息构建时,每个 TIPC 消息都有一个共同的 header 格式。根据该研究员的说法,该 header 包含一个 “header 大小” 分配,还有一个 “消息大小” 分配,这两个大小是由 tipc_msg_validate 函数所验证的。

如前文所述,这个额外的消息类型 “MSG_CRYPTO” 允许节点相互发送加密密钥。根据分析,这些消息包含密钥算法的名称和密钥本身。对密钥长度或密钥算法名称本身大小(TIPC_AEAD_ALG_NAME),目前都没有针对这些内容进行大小验证的检查。对 MSG_CRYPTO 消息类型缺乏这种大小验证,为堆溢出漏洞打开了大门。

该漏洞影响到 5.10 至 5.15 之间的 Linux 内核版本。但需要注意的是,虽然目前所有主流的 Linux 发行版都有 TIPC 模块,但在默认情况下并没有开启的,并且只有在开启 TIPC 后才会使你的 Linux 系统受到该漏洞的影响。

SentinelLabs 在 10 月 19 日已向 Kernel.org 团队报告了这个漏洞。该模块的维护者在 10 月 21 日已完成了补丁。该补丁已经同 Linux 5.15 版本一同发布。为了确保万无一失,建议 Linux 用户应该更新近期发布的补丁。

来源:https://www.oschina.net/news/167566/flaw-in-linux-kernel-tipc-module

点赞收藏
堆堆

【HeapDump性能社区官方小编】各位堆友们,+微信号perfMa,可以联系上堆堆哦~

请先登录,感受更多精彩内容
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步
0
0
https://a.perfma.net/img/3110416
堆堆

徽章

【HeapDump性能社区官方小编】各位堆友们,+微信号perfMa,可以联系上堆堆哦~