// For flags

CVE-2024-26643

netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout

Severity Score

4.7
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

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

netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout

While the rhashtable set gc runs asynchronously, a race allows it to
collect elements from anonymous sets with timeouts while it is being
released from the commit path.

Mingi Cho originally reported this issue in a different path in 6.1.x
with a pipapo set with low timeouts which is not possible upstream since
7395dfacfff6 ("netfilter: nf_tables: use timestamp to check for set
element timeout").

Fix this by setting on the dead flag for anonymous sets to skip async gc
in this case.

According to 08e4c8c5919f ("netfilter: nf_tables: mark newset as dead on
transaction abort"), Florian plans to accelerate abort path by releasing
objects via workqueue, therefore, this sets on the dead flag for abort
path too.

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: nf_tables: marca el conjunto como muerto al desvincular el conjunto anónimo con tiempo de espera. Mientras que el conjunto rhashtable gc se ejecuta de forma asíncrona, una ejecución le permite recopilar elementos de conjuntos anónimos con tiempos de espera mientras se libera de la ruta de confirmación. Mingi Cho informó originalmente este problema en una ruta diferente en 6.1.x con un pipapo configurado con tiempos de espera bajos, lo cual no es posible en sentido ascendente desde 7395dfacfff6 ("netfilter: nf_tables: use la marca de tiempo para verificar el tiempo de espera del elemento establecido"). Solucione este problema configurando la bandera muerta para que los conjuntos anónimos omitan el gc asíncrono en este caso. Según 08e4c8c5919f ("netfilter: nf_tables: marcar el nuevo conjunto como muerto al cancelar la transacción"), Florian planea acelerar la ruta de cancelación liberando objetos a través de la cola de trabajo, por lo tanto, esto también activa la bandera muerta para la ruta de cancelación.

A vulnerability was found in the netfilter/nf_tables subsystem of Linux Kernel, where a race condition caused where the garbage collector could prematurely collect elements from anonymous sets with timeouts while they were being released.

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-02-19 CVE Reserved
  • 2024-03-21 CVE Published
  • 2024-04-14 EPSS Updated
  • 2024-08-02 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
CAPEC
References (17)
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.4.262 < 5.4.274
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.4.262 < 5.4.274"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.10.198 < 5.10.215
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.10.198 < 5.10.215"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.15.134 < 5.15.154
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.15.134 < 5.15.154"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 6.1.56 < 6.1.84
Search vendor "Linux" for product "Linux Kernel" and version " >= 6.1.56 < 6.1.84"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 6.5 < 6.6.24
Search vendor "Linux" for product "Linux Kernel" and version " >= 6.5 < 6.6.24"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 6.5 < 6.7.12
Search vendor "Linux" for product "Linux Kernel" and version " >= 6.5 < 6.7.12"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 6.5 < 6.8
Search vendor "Linux" for product "Linux Kernel" and version " >= 6.5 < 6.8"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
6.4.11
Search vendor "Linux" for product "Linux Kernel" and version "6.4.11"
en
Affected