// For flags

CVE-2023-52923

netfilter: nf_tables: adapt set backend to use GC transaction API

Severity Score

7.1
*CVSS v3

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: adapt set backend to use GC transaction API Use the GC transaction API to replace the old and buggy gc API and the
busy mark approach. No set elements are removed from async garbage collection anymore,
instead the _DEAD bit is set on so the set element is not visible from
lookup path anymore. Async GC enqueues transaction work that might be
aborted and retried later. rbtree and pipapo set backends does not set on the _DEAD bit from the
sync GC path since this runs in control plane path where mutex is held.
In this case, set elements are deactivated, removed and then released
via RCU callback, sync GC never fails.

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: nf_tables: adaptar el backend del conjunto para usar la API de transacción de GC Use la API de transacción de GC para reemplazar la antigua y defectuosa API de gc y el enfoque de marca de ocupado. Ya no se eliminan elementos del conjunto de la recolección de basura asíncrona, en su lugar, se activa el bit _DEAD para que el elemento del conjunto ya no sea visible desde la ruta de búsqueda. La recolección de basura asíncrona pone en cola el trabajo de la transacción que podría abortarse y reintentarse más tarde. Los backends de conjunto de rbtree y pipapo no activan el bit _DEAD de la ruta de GC de sincronización, ya que esto se ejecuta en la ruta del plano de control donde se mantiene el mutex. En este caso, los elementos del conjunto se desactivan, se eliminan y luego se liberan a través de la devolución de llamada de RCU, la GC de sincronización nunca falla.

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: adapt set backend to use GC transaction API Use the GC transaction API to replace the old and buggy gc API and the busy mark approach. No set elements are removed from async garbage collection anymore, instead the _DEAD bit is set on so the set element is not visible from lookup path anymore. Async GC enqueues transaction work that might be aborted and retried later. rbtree and pipapo set backends does not set on the _DEAD bit from the sync GC path since this runs in control plane path where mutex is held. In this case, set elements are deactivated, removed and then released via RCU callback, sync GC never fails.

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High
Attack Vector
Network
Attack Complexity
Low
Authentication
None
Confidentiality
Partial
Integrity
Partial
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2024-08-21 CVE Reserved
  • 2025-01-20 CVE Published
  • 2025-01-20 CVE Updated
  • 2025-01-21 EPSS Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
CAPEC
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"
>= 4.1 < 4.19.316
Search vendor "Linux" for product "Linux Kernel" and version " >= 4.1 < 4.19.316"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 4.1 < 5.4.262
Search vendor "Linux" for product "Linux Kernel" and version " >= 4.1 < 5.4.262"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 4.1 < 5.10.198
Search vendor "Linux" for product "Linux Kernel" and version " >= 4.1 < 5.10.198"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 4.1 < 5.15.134
Search vendor "Linux" for product "Linux Kernel" and version " >= 4.1 < 5.15.134"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 4.1 < 6.1.56
Search vendor "Linux" for product "Linux Kernel" and version " >= 4.1 < 6.1.56"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 4.1 < 6.4.11
Search vendor "Linux" for product "Linux Kernel" and version " >= 4.1 < 6.4.11"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 4.1 < 6.5
Search vendor "Linux" for product "Linux Kernel" and version " >= 4.1 < 6.5"
en
Affected