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