
漏洞概述
Linux内核的nftables子系统(特别是net/netfilter模块)中发现一个高危漏洞,攻击者可利用nft_pipapo_destroy()函数中的双重释放(double-free)漏洞实现本地提权。该漏洞编号为CVE-2024-26809,影响内核版本6.1-rc1及以上以及5.15.54及以上的系统。
技术原理
该漏洞源于nftables数据包过滤功能中pipapo集合销毁过程的逻辑缺陷。在特定条件下,某个元素可能同时存在于match和clone中,导致函数尝试对同一内存区域执行两次释放操作,从而引发内存损坏。
问题函数关键片段:
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(

最低0.47元/天 解锁文章
98

被折叠的 条评论
为什么被折叠?



