Nftables漏洞原理分析(CVE-2022-32250)

💡 原文中文,约9300字,阅读约需23分钟。
📝

内容提要

nftables中的CVE-2022-32250漏洞是由于处理集合时存在uaf漏洞。攻击者可以通过创建特定的set和lookup表达式来触发漏洞。

🎯

关键要点

  • nftables中的CVE-2022-32250漏洞是由于处理集合时存在uaf漏洞。

  • 攻击者可以通过创建特定的set和lookup表达式来触发漏洞。

  • 集合用于存储唯一值,并提供高效的元素存在性检查机制。

  • 漏洞验证需要在特定环境下搭建,包括ubuntu20和相关配置。

  • KASAN检测出uaf漏洞,漏洞与set的创建和使用有关。

  • 在创建集合时需要校验集合名、表、键值长度和ID等条件。

  • 集合通过kvzalloc函数开辟空间,并进行初始化。

  • 表达式的创建和初始化过程可能导致漏洞,因为表达式的标志位未被正确校验。

  • lookup表达式的结构体包含binding变量,负责维护双链表。

  • 在lookup表达式初始化时需要set和源寄存器的存在。

  • 绑定操作将表达式的binding接入set的binding,维护相同set下的不同表达式。

  • 若lookup表达式已绑定在set上,销毁操作可能不会执行,导致表达式残留。

  • POC分析展示了如何创建set和lookup表达式以触发漏洞。

  • 通过创建多个set并链接已释放的lookup表达式,最终导致uaf漏洞的发生。

➡️

继续阅读