You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
netfilter: nf_tables: fix memleak when more than 255 elements expired
jira VUlN-597
cve CVE-2023-52581
commit-author Florian Westphal <[email protected]>
commit cf5000a
upstream-diff We had to pull in a piece of upstream commit 6001a93
"netfilter: nftables: introduce table ownership". Red Hat pulled in
some code that uses NFT_TABLE_F_MASK but they didn't want the full
commit so they just redefined NFT_TABLE_F_MASK as NFT_TABLE_F_DORMANT.
When more than 255 elements expired we're supposed to switch to a new gc
container structure.
This never happens: u8 type will wrap before reaching the boundary
and nft_trans_gc_space() always returns true.
This means we recycle the initial gc container structure and
lose track of the elements that came before.
While at it, don't deref 'gc' after we've passed it to call_rcu.
Fixes: 5f68718 ("netfilter: nf_tables: GC transaction API to avoid race with control plane")
Reported-by: Pablo Neira Ayuso <[email protected]>
Signed-off-by: Florian Westphal <[email protected]>
(cherry picked from commit cf5000a)
Signed-off-by: Greg Rose <[email protected]>
squash
0 commit comments