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.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc5:*:*:*:*:*:*

History

15 Oct 2025, 20:04

Type Values Removed Values Added
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.5:rc4:*:*:*:*:*:*
CWE NVD-CWE-noinfo
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: nf_tables: no omitir elementos expirados durante el recorrido hay una asimetría entre la fase de confirmación/aborto y la de preparación si se cumplen las siguientes condiciones: 1. el conjunto es un mapa de veredicto ("1.2.3.4: saltar foo") 2. los tiempos de espera están habilitados en este caso, la siguiente secuencia es problemática: 1. el elemento E en el conjunto S se refiere a la cadena C 2. el espacio de usuario solicita la eliminación del conjunto S 3. el kernel realiza un recorrido de conjuntos para decrementar el recuento de cadena->uso para todos los elementos de la fase de preparación 4. el kernel realiza otro recorrido de conjuntos para eliminar elementos de la fase de confirmación (u otro recorrido para hacer un incremento de cadena->uso para todos los elementos de la fase de aborto) Si E ya expiró en 1), se ignorará durante el recorrido de lista, por lo que su recuento de uso no se habrá modificado. Luego, cuando se elimina el conjunto, la devolución de llamada ->destroy eliminará el elemento a través de nf_tables_set_elem_destroy(), pero esta función solo es segura para los elementos que se han desactivado antes de la fase de preparación: la falta de una desactivación anterior elimina el elemento pero filtra el recuento de uso de la cadena, lo que da como resultado un splat WARN cuando la cadena se elimina más tarde, además de una fuga de la estructura nft_chain. Actualice pipapo_get() para no omitir los elementos vencidos, de lo contrario, el comando flush informa errores ENOENT falsos.
References () https://git.kernel.org/stable/c/1da4874d05da1526b11b82fc7f3c7ac38749ddf8 - () https://git.kernel.org/stable/c/1da4874d05da1526b11b82fc7f3c7ac38749ddf8 - Patch
References () https://git.kernel.org/stable/c/24138933b97b055d486e8064b4a1721702442a9b - () https://git.kernel.org/stable/c/24138933b97b055d486e8064b4a1721702442a9b - Patch
References () https://git.kernel.org/stable/c/59dab3bf0b8fc08eb802721c0532f13dd89209b8 - () https://git.kernel.org/stable/c/59dab3bf0b8fc08eb802721c0532f13dd89209b8 - Patch
References () https://git.kernel.org/stable/c/7c7e658a36f8b1522bd3586d8137e5f93a25ddc5 - () https://git.kernel.org/stable/c/7c7e658a36f8b1522bd3586d8137e5f93a25ddc5 - Patch
References () https://git.kernel.org/stable/c/94313a196b44184b5b52c1876da6a537701b425a - () https://git.kernel.org/stable/c/94313a196b44184b5b52c1876da6a537701b425a - Patch
References () https://git.kernel.org/stable/c/b15ea4017af82011dd55225ce77cce3d4dfc169c - () https://git.kernel.org/stable/c/b15ea4017af82011dd55225ce77cce3d4dfc169c - Patch
References () https://git.kernel.org/stable/c/bd156ce9553dcaf2d6ee2c825d1a5a1718e86524 - () https://git.kernel.org/stable/c/bd156ce9553dcaf2d6ee2c825d1a5a1718e86524 - Patch

05 Feb 2025, 10:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-02-05 10:15

Updated : 2025-10-15 20:04


NVD link : CVE-2023-52924

Mitre link : CVE-2023-52924

CVE.ORG link : CVE-2023-52924


JSON object : View

Products Affected

linux

  • linux_kernel