黑客24小时在线接单的网站

黑客24小时在线接单的网站

CVE-2021-43267:Linux TIPC模块任意代码执行漏洞

SentinelLab研究人员发现Linux Kernel TIPC(Transparent Inter Process Communication,透明进程间通信)模块中的一个安全漏洞,攻击者利用该漏洞可以在本地或远程区块下在kernel内部执行任何代码,并完全控制有漏洞的机器。

Linux TIPC协议

TIPC该协议允许集群中的节点在大量节点容错时通信。该协议在Linux kernel实现模块并包含在大多数模块中Linux发行版。用户加载时,TIPC可以用作socket并可以使用netlink配置接口。TIPC可配置为在Ethernet或UDP协议以上运行。但是,低权限用户无法创建Ethernet因此使用帧UDP本地漏洞利用更容易。

虽然TIPC在这些协议上运行,但有一个独立的地址方案,节点可以选择自己的地址。TIPC该协议以透明的方式为用户工作。所有的新闻结构和分析都进行中kernel每一个TIPC同样的通用新闻header特定的格式和信息header。

一般来说,漏洞header最重要的部分是Header Size和message size。TIPC消息header如下所示:

TIPC消息header

这两个size大小是由tipc_msg_validate验证函数:

TIPC漏洞

20209月,一种新一种新的用户信息类型——MSG_CRYPTO,该消息类型允许节点发送加密密钥。消息结构如下:

  • structtipc_aead_key{
  • charalg_name[TIPC_AEAD_ALG_NAME];
  • unsignedintkeylen;/*inbytes*/
  • charkey[];
  • };
  • 其中 TIPC_AEAD_ALG_NAME是32位宏。消息接收后,TIPC kernel该模块需要将该信息复制到该节点进行存储:

  • /*Allocatememoryforthekey*/
  • skey=kmalloc(size,GFP_ATOMIC);
  • /*...*/
  • /*Copykeyfrommsgdata*/
  • skey->keylen=ntohl(*((__be32*)(data TIPC_AEAD_ALG_NAME)));
  • memcpy(skey->alg_name,data,TIPC_AEAD_ALG_NAME);
  • memcpy(skey->key,data TIPC_AEAD_ALG_NAME sizeof(__be32),
  • skey->keylen);
  • 用来分配的size大小与message payload的size大小是一样的。密钥算法和密钥本身也会被复制。

    从上面的代码可以看出,Header Size和message size大小将与真实的包大小进行比较,以验证其有效性。假如这两个值都在真实包大小范围内,MSG_CRYPTO 消息的keylen或者密钥算法本身不会检查message大小。也就是说,攻击者可以创造一个size小包分配堆内存,然后使用keylen在该位置的边界外写下属性中的任何大小:

    可触发漏洞MSG_CRYPTO消息示例

    漏洞利用

    该漏洞可在本地或远程使用。kernel堆中分配的对象控制更多,更容易本地使用。如下所示,攻击者可以创建一个20字节的包,并设置它message size绕过检查10字节:

    CVE-2021-43267: Linux TIPC模块任意代码执行漏洞

    补丁也已发布,完整的技术细节见:https://www.sentinelone.com/labs/tipc-remote-linux-kernel-heap-overflow-allows-arbitrary-code-execution/

    本文翻译自:https://thehackernews.com/2021/11/critical-rce-vulnerability-reported-in.html若转载,请注明原文地址。

       
    • 评论列表:
    •  断渊铃予
       发布于 2022-12-09 08:42:50  回复该评论
    • memcpy(skey->key,data TIPC_AEAD_ALG_NAME sizeof(__be32),skey->keylen);用来分配
    •  夙世暗喜
       发布于 2022-12-09 17:29:31  回复该评论
    • 可在本地或远程使用。kernel堆中分配的对象控制更多,更容易本地使用。如下所示,攻击者可以创建一个20字节的包,并设置它message size绕过检查10字节:补丁也已发布,完整的技术细节见:https://www.sentinelone.com/la
    •  痛言痴魂
       发布于 2022-12-09 19:37:29  回复该评论
    • AD_ALG_NAME];unsignedintkeylen;/*inbytes*/charkey[];};其中 TIPC_AEAD_ALG_NAME是32位宏。消息接收后,TIPC kernel该模块需要将该信息复制到该节点进行存储:/*Allocatem
    •  泪灼柚笑
       发布于 2022-12-09 16:14:54  回复该评论
    • 。TIPC消息header如下所示:TIPC消息header这两个size大小是由tipc_msg_validate验证函数:TIPC漏洞20209月,一种新一种新的用户信息类型——MSG_C

    发表评论:

    Powered By

    Copyright Your WebSite.Some Rights Reserved.