CVE-2024-35960

In the Linux kernel, the following vulnerability has been resolved: net/mlx5: Properly link new fs rules into the tree Previously, add_rule_fg would only add newly created rules from the handle into the tree when they had a refcount of 1. On the other hand, create_flow_handle tries hard to find and reference already existing identical rules instead of creating new ones. These two behaviors can result in a situation where create_flow_handle 1) creates a new rule and references it, then 2) in a subsequent step during the same handle creation references it again, resulting in a rule with a refcount of 2 that is not linked into the tree, will have a NULL parent and root and will result in a crash when the flow group is deleted because del_sw_hw_rule, invoked on rule deletion, assumes node->parent is != NULL. This happened in the wild, due to another bug related to incorrect handling of duplicate pkt_reformat ids, which lead to the code in create_flow_handle incorrectly referencing a just-added rule in the same flow handle, resulting in the problem described above. Full details are at [1]. This patch changes add_rule_fg to add new rules without parents into the tree, properly initializing them and avoiding the crash. This makes it more consistent with how rules are added to an FTE in create_flow_handle.
Configurations

No configuration.

History

21 Nov 2024, 09:21

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html -
References () https://git.kernel.org/stable/c/1263b0b26077b1183c3c45a0a2479573a351d423 - () https://git.kernel.org/stable/c/1263b0b26077b1183c3c45a0a2479573a351d423 -
References () https://git.kernel.org/stable/c/2e8dc5cffc844dacfa79f056dea88002312f253f - () https://git.kernel.org/stable/c/2e8dc5cffc844dacfa79f056dea88002312f253f -
References () https://git.kernel.org/stable/c/3d90ca9145f6b97b38d0c2b6b30f6ca6af9c1801 - () https://git.kernel.org/stable/c/3d90ca9145f6b97b38d0c2b6b30f6ca6af9c1801 -
References () https://git.kernel.org/stable/c/5cf5337ef701830f173b4eec00a4f984adeb57a0 - () https://git.kernel.org/stable/c/5cf5337ef701830f173b4eec00a4f984adeb57a0 -
References () https://git.kernel.org/stable/c/7aaee12b804c5e0374e7b132b6ec2158ff33dd64 - () https://git.kernel.org/stable/c/7aaee12b804c5e0374e7b132b6ec2158ff33dd64 -
References () https://git.kernel.org/stable/c/7c6782ad4911cbee874e85630226ed389ff2e453 - () https://git.kernel.org/stable/c/7c6782ad4911cbee874e85630226ed389ff2e453 -
References () https://git.kernel.org/stable/c/adf67a03af39095f05d82050f15813d6f700159d - () https://git.kernel.org/stable/c/adf67a03af39095f05d82050f15813d6f700159d -
References () https://git.kernel.org/stable/c/de0139719cdda82806a47580ca0df06fc85e0bd2 - () https://git.kernel.org/stable/c/de0139719cdda82806a47580ca0df06fc85e0bd2 -

05 Nov 2024, 10:16

Type Values Removed Values Added
References
  • {'url': 'https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html', 'source': '416baaa9-dc9f-4396-8d5f-8c081fb06d67'}
  • {'url': 'https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html', 'source': '416baaa9-dc9f-4396-8d5f-8c081fb06d67'}

03 Jul 2024, 02:02

Type Values Removed Values Added
CWE CWE-476
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 9.1

27 Jun 2024, 12:15

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html -

25 Jun 2024, 22:15

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: net/mlx5: vincular correctamente nuevas reglas fs al árbol. Anteriormente, add_rule_fg solo agregaba reglas recién creadas desde el identificador al árbol cuando tenían un recuento de 1. Por otro lado Por otro lado, create_flow_handle se esfuerza por encontrar y hacer referencia a reglas idénticas ya existentes en lugar de crear otras nuevas. Estos dos comportamientos pueden dar lugar a una situación en la que create_flow_handle 1) crea una nueva regla y hace referencia a ella, luego 2) en un paso posterior durante la creación del mismo identificador hace referencia a ella nuevamente, lo que da como resultado una regla con un recuento de 2 que no está vinculada a el árbol, tendrá un padre y una raíz NULL y provocará un bloqueo cuando se elimine el grupo de flujo porque del_sw_hw_rule, invocado al eliminar la regla, asume que nodo->padre es != NULL. Esto sucedió en la naturaleza, debido a otro error relacionado con el manejo incorrecto de identificadores de pkt_reformat duplicados, lo que llevó al código en create_flow_handle a hacer referencia incorrecta a una regla recién agregada en el mismo identificador de flujo, lo que resultó en el problema descrito anteriormente. Los detalles completos están en [1]. Este parche cambia add_rule_fg para agregar nuevas reglas sin padres al árbol, inicializándolas correctamente y evitando el bloqueo. Esto lo hace más coherente con la forma en que se agregan reglas a un FTE en create_flow_handle.
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -

20 May 2024, 10:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-20 10:15

Updated : 2024-11-21 09:21


NVD link : CVE-2024-35960

Mitre link : CVE-2024-35960

CVE.ORG link : CVE-2024-35960


JSON object : View

Products Affected

No product.

CWE
CWE-476

NULL Pointer Dereference