CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's mlxsw component, specifically in the mlxsw_sp_vrs_lpm_tree_replace() function, where a reference count leak occurs due to improper error handling during Virtual Router (VR) replacements. This flaw can lead to resource leaks, potentially impacting system stability and performance. Organizations utilizing Linux systems with the mlxsw driver should prioritize addressing this issue to maintain optimal resource management and prevent potential disruptions.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: mlxsw: fix refcount leak in mlxsw_sp_vrs_lpm_tree_replace() When mlxsw_sp_vrs_lpm_tree_replace() fails after replacing some VRs, the error rollback loop does not correctly revert the preceding replacements. The loop decrements the index but fails to update the vr pointer, which still points to the VR that caused the failure. As a result, the condition and the rollback call always operate on the same VR, potentially calling mlxsw_sp_vr_lpm_tree_replace() multiple times on it while never rolling back the earlier VRs. Those VRs continue to hold a reference to new_tree acquired via mlxsw_sp_lpm_tree_hold(), leaking the reference count of new_tree. Fix by reinitializing vr inside the error loop with the updated index: vr = &mlxsw_sp->router->vrs[i]; so that the loop correctly iterates over all VRs that were actually replaced.