ZDI-24-821: 内核的 net/tipc 中的远程 UAF(使用后释放)

主要观点:作者在为 TyphoonCon 准备演讲时发现 Linux 内核 TIPC 网络栈中的一个漏洞,介绍了该漏洞的背景、原理、利用方式、修复措施等。
关键信息

  • 漏洞允许本地或远程攻击者在受影响的 Linux 内核安装中触发 TIPC 网络栈中的使用后释放漏洞,仅 TIPC 模块构建并加载的系统易受攻击,远程攻击需系统有可被攻击者访问的配置接口。
  • 漏洞存在于 TIPC 消息片段重组实现中,具体在tipc_buf_append()函数,因错误处理清理中缺少检查导致。
  • 漏洞于 2015 年引入,2024 年 5 月修复,被分配[ZDI-24-821]和[CVE-2024-36886]。
  • 背景介绍了net/的基础知识如struct sk_buffstruct skb_shared_info,以及 TIPC 的基本概念和操作。
  • 利用方式从本地攻击者通过 UDP 承载与消息碎片交互触发,利用struct sk_buff的复杂性进行攻击,虽未实现完整 exploit 但指出其可能性。
  • 修复措施为在tipc_buf_append()函数中添加清理输入 skb 引用的代码,防止 UAF,未使用 TIPC 时可禁用 TIPC 模块加载。
    重要细节
  • 给出了漏洞的调用栈跟踪、代码示例及各种变化情况,如通过TUNNEL_PROTOCOL消息也可到达漏洞路径等。
  • 提及一些相关的 TIPC 漏洞报告和研究文章,如[CVE-2021-43267]等。
  • 感谢 ZDI 和 Linux 内核维护者,表达后续完善研究的愿望及提供相关学习资源。
阅读 23
0 条评论