Description (CNA)
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.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 194fad5b27815ca80e832ac875c0026ff96fc243 before e75f1a5b267e820f5b7900c16d84f12c122218cc; affected 194fad5b27815ca80e832ac875c0026ff96fc243 before 8549ac21ab503fc7a40bfa8e6beb69e6320d9877; affected 194fad5b27815ca80e832ac875c0026ff96fc243 before 4e1caa5fdd0dea36938fe39cceb1522e9d86c937; affected 194fad5b27815ca80e832ac875c0026ff96fc243 before 1cb8553c02e93e5a150cebd42f9ee3db0ece4707 |
| Linux / Linux | affected 6.10; unaffected 0 before 6.10; unaffected 6.12.114 through 6.12.*; unaffected 6.18.57 through 6.18.*; unaffected 7.1.6 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.