bnxt_en: Handle partially initialized auxiliary devices
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.12.114, 6.18.57, 7.1.6
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 194fad5b27815ca80e832ac875c0026ff96fc243 · fixed in e75f1a5b267e820f5b7900c16d84f12c122218cc; From 194fad5b27815ca80e832ac875c0026ff96fc243 · fixed in 8549ac21ab503fc7a40bfa8e6beb69e6320d9877; From 194fad5b27815ca80e832ac875c0026ff96fc243 · fixed in 4e1caa5fdd0dea36938fe39cceb1522e9d86c937; From 194fad5b27815ca80e832ac875c0026ff96fc243 · fixed in 1cb8553c02e93e5a150cebd42f9ee3db0ece4707
- Linux Linux
6.10
- KernelLinux
From 6.10.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.1.6