title: netfilter: nf_tables: fix memleak when more than 255 elements expired
description: In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_tables: fix memleak when more than 255 elements expired
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.
affected:
{
product: Linux
vendor: Linux
defaultStatus: unaffected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: bbdb3b65aa91, lessThan: a995a68e8a3b, status: affected, versionType: git
version: 448be0774882, lessThan: 09c85f2d21ab, status: affected, versionType: git
version: d19e8bf3ea41, lessThan: ef99506eaf1d, status: affected, versionType: git
version: ea3eb9f2192e, lessThan: 7e5d732e6902, status: affected, versionType: git
version: 5f68718b34a5, lessThan: 4aea243b6853, status: affected, versionType: git
version: 5f68718b34a5, lessThan: cf5000a7787c, status: affected, versionType: git
}
{
product: Linux
vendor: Linux
defaultStatus: affected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 6.5, status: affected
version: 0, lessThan: 6.5, status: unaffected, versionType: custom
version: 6.5.6, lessThanOrEqual: 6.5.*, status: unaffected, versionType: custom
version: 6.6, lessThanOrEqual: *, status: unaffected, versionType: original_commit_for_fix
}
