CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's bnxt_en driver, specifically in the handling of auxiliary devices during initialization. If an allocation fails after the auxiliary device is initialized, it can lead to dereferencing or clearing of partially initialized structures, potentially resulting in system instability or crashes. Organizations using affected Linux kernel versions, particularly those relying on the bnxt_en driver for network functionality, should prioritize addressing this issue to maintain system integrity and prevent operational disruptions.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: bnxt_en: Handle partially initialized auxiliary devices bnxt_aux_devices_init() calls auxiliary_device_init() before all fields used by bnxt_aux_dev_release() are initialized. After auxiliary_device_init() succeeds, later errors must unwind with auxiliary_device_uninit(), which invokes the release callback. The release callback assumes that aux_priv->id, aux_priv->edev, edev->net and edev->ulp_tbl are all populated. If allocation fails after auxiliary_device_init(), the release path can otherwise dereference or clear partially initialized state. Allocate and attach the bnxt_en_dev and ULP table before calling auxiliary_device_init(), so the release callback only sees a fully initialized auxiliary private object. If auxiliary_device_init() itself fails, free those allocations directly because device_initialize() has not run and the release callback will not be invoked. This issue was found by a static analysis checker and confirmed by manual source review.