Linux内核的漏洞E利nftables子系统(特别是net/netfilter模块)中发现一个高危漏洞 ,攻击者可利用nft_pipapo_destroy()函数中的预警用双重释放(double-free)漏洞实现本地提权。该漏洞编号为CVE-2024-26809,源码库重释影响内核版本6.1-rc1及以上以及5.15.54及以上的放漏系统 。

该漏洞源于nftables数据包过滤功能中pipapo集合销毁过程的洞获逻辑缺陷。在特定条件下 ,免费模板取Rt权某个元素可能同时存在于match和clone中,漏洞E利导致函数尝试对同一内存区域执行两次释放操作,预警用从而引发内存损坏。重释
问题函数关键片段:
复制static void nft_pipapo_destroy(const struct nft_ctx *ctx,放漏 const struct nft_set *set) { struct nft_pipapo *priv = nft_set_priv(set); struct nft_pipapo_match *m; int cpu; m = rcu_dereference_protected(priv->match, true); if (m) { ... nft_set_pipapo_match_destroy(ctx, set, m); ... } if (priv->clone) { m = priv->clone; if (priv->dirty) nft_set_pipapo_match_destroy(ctx, set, m); ...1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.当dirty标志被设置时,该函数会对重叠的模板下载洞获内存区域错误地调用两次nft_set_pipapo_match_destroy() 。
利用方式CVE-2024-26809的取Rt权利用过程涉及通过内核对象缓存系统(特别是kmalloc-256)进行堆布局和操控。攻击者通过精心设计的建站模板漏洞E利内存分配与释放操作实现:
重叠nftables对象泄露内核地址劫持函数指针(如expr->ops->dump)执行ROP(返回导向编程)指令链获取root权限技术分析指出 :"完成栈迁移后 ,我们可以运行ROPgadget并最终获得root shell"。预警用该攻击展示了攻击者对内核内存结构的重释深入理解,以及如何将细微的云计算内存错误武器化以实现完全系统控制。
修复建议目前已有可用的概念验证(PoC)漏洞利用代码,演示了如何串联该漏洞实现内核代码执行。受影响内核版本的源码下载用户应立即更新系统以应用相关补丁 ,消除CVE-2024-26809带来的安全风险。
(责任编辑:系统运维)