CVE-2023-52925
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
05/02/2025
Last modified:
06/02/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
netfilter: nf_tables: don&#39;t fail inserts if duplicate has expired<br />
<br />
nftables selftests fail:<br />
run-tests.sh testcases/sets/0044interval_overlap_0<br />
Expected: 0-2 . 0-3, got:<br />
W: [FAILED] ./testcases/sets/0044interval_overlap_0: got 1<br />
<br />
Insertion must ignore duplicate but expired entries.<br />
<br />
Moreover, there is a strange asymmetry in nft_pipapo_activate:<br />
<br />
It refetches the current element, whereas the other ->activate callbacks<br />
(bitmap, hash, rhash, rbtree) use elem->priv.<br />
Same for .remove: other set implementations take elem->priv,<br />
nft_pipapo_remove fetches elem->priv, then does a relookup,<br />
remove this.<br />
<br />
I suspect this was the reason for the change that prompted the<br />
removal of the expired check in pipapo_get() in the first place,<br />
but skipping exired elements there makes no sense to me, this helper<br />
is used for normal get requests, insertions (duplicate check)<br />
and deactivate callback.<br />
<br />
In first two cases expired elements must be skipped.<br />
<br />
For ->deactivate(), this gets called for DELSETELEM, so it<br />
seems to me that expired elements should be skipped as well, i.e.<br />
delete request should fail with -ENOENT error.
Impact
Base Score 3.x
6.20
Severity 3.x
MEDIUM
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/156369a702c33ad5434a19c3a689bfb836d4e0b8
- https://git.kernel.org/stable/c/59ee68c437c562170265194a99698c805a686bb3
- https://git.kernel.org/stable/c/7845914f45f066497ac75b30c50dbc735e84e884
- https://git.kernel.org/stable/c/891ca5dfe3b718b441fc786014a7ba8f517da188
- https://git.kernel.org/stable/c/af78b0489e8898a8c9449ffc0fdd2e181916f0d4