Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information