CVE-2023-52924

MEDIUM

Linux Kernel 4.1-4.19.315 - Use-After-Free in nf_tables Set Element Handling

Title source: llm
STIX 2.1

Description

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.

Scores

CVSS v3 5.5
EPSS 0.0020
EPSS Percentile 10.0%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Details

Status published
Products (24)
linux/Kernel 4.1.0 - 4.19.316linux
linux/Kernel 4.20.0 - 5.4.262linux
linux/Kernel 5.11.0 - 5.15.134linux
linux/Kernel 5.16.0 - 6.1.56linux
linux/Kernel 5.5.0 - 5.10.198linux
linux/Kernel 6.2.0 - 6.4.11linux
Linux/Linux < 4.1
Linux/Linux 4.1
Linux/Linux 4.19.316 - 4.19.*
Linux/Linux 5.10.198 - 5.10.*
... and 14 more
Published Feb 05, 2025
Tracked Since Feb 18, 2026