CVE-2023-52924

In the Linux kernel, the following vulnerability has been resolved:

netfilter: nf_tables: don't skip expired elements during walk

There is an asymmetry between commit/abort and preparation phase if the
following conditions are met:

1. set is a verdict map ("1.2.3.4 : jump foo")
2. timeouts are enabled

In this case, following sequence is problematic:

1. element E in set S refers to chain C
2. userspace requests removal of set S
3. kernel does a set walk to decrement chain->use count for all elements
   from preparation phase
4. kernel does another set walk to remove elements from the commit phase
   (or another walk to do a chain->use increment for all elements from
    abort phase)

If E has already expired in 1), it will be ignored during list walk, so its use count
won't have been changed.

Then, when set is culled, ->destroy callback will zap the element via
nf_tables_set_elem_destroy(), but this function is only safe for
elements that have been deactivated earlier from the preparation phase:
lack of earlier deactivate removes the element but leaks the chain use
count, which results in a WARN splat when the chain gets removed later,
plus a leak of the nft_chain structure.

Update pipapo_get() not to skip expired elements, otherwise flush
command reports bogus ENOENT errors.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
5.5 MEDIUM
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
LinuxCNA
---
---
Base Score
CVSS 3.x
EPSS Score
Percentile: 17%
VendorProductVersion
linuxlinux_kernel
4.1 ≤
𝑥
< 4.19.316
linuxlinux_kernel
4.20 ≤
𝑥
< 5.4.262
linuxlinux_kernel
5.5 ≤
𝑥
< 5.10.198
linuxlinux_kernel
5.11 ≤
𝑥
< 5.15.134
linuxlinux_kernel
5.16 ≤
𝑥
< 6.1.56
linuxlinux_kernel
6.2 ≤
𝑥
< 6.4.11
linuxlinux_kernel
6.5:rc1
linuxlinux_kernel
6.5:rc2
linuxlinux_kernel
6.5:rc3
linuxlinux_kernel
6.5:rc4
linuxlinux_kernel
6.5:rc5
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bullseye
5.10.223-1
fixed
bullseye (security)
5.10.226-1
fixed
bookworm
6.1.123-1
fixed
bookworm (security)
6.1.119-1
fixed
trixie
6.12.11-1
fixed
sid
6.12.12-1
fixed