IB/mlx4: Fix use-after-free on pkey sysfs registration failure
- 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 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- 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: IB/mlx4: Fix use-after-free on pkey sysfs registration failure register_pkey_tree() ignores errors from register_one_pkey_tree() and continues registering the remaining slaves. The per-slave error path has already released the pkey parent kobjects, but their pointers remain stored in the device. A later device cleanup therefore passes the stale pointers to kobject_put(), causing a use-after-free. Clear the parent pointers after releasing a failed slave tree and skip unregistered trees during device cleanup. This preserves the existing best-effort registration behavior while preventing a second cleanup of the failed tree.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in 791471421d848ce13e84f4b21c9e19973d471c4e; From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in 734f066933484f6c7cedea0312763249beed5845; From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in a07bee32127d7c4cd3b1bb9a088e21d0c93634c9; From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in cf20d7476754c00eec04ae23d3e929de33ce0345; From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in 0c3482e965b18bc242e54e899d1c4d391ca8e5e3; From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in ffb80872617b5f9b3dd1536ec2909029fa66f228; From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in ced1186fea7c77e16681c7ef4802897885989c3b; From c1e7e466120b80ce49e91af0c9da1ce6dee4844a · fixed in 1af874e9f4ce22ccf8b10ab5462f32c70d3be21a
- Linux Linux
3.7
- KernelLinux
From 3.7.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8
References 8
git.kernel.org
- stable/c/791471421d848ce13e84f4b21c9e19973d471c4e
- stable/c/734f066933484f6c7cedea0312763249beed5845
- stable/c/a07bee32127d7c4cd3b1bb9a088e21d0c93634c9
- stable/c/cf20d7476754c00eec04ae23d3e929de33ce0345
- stable/c/0c3482e965b18bc242e54e899d1c4d391ca8e5e3
- stable/c/ffb80872617b5f9b3dd1536ec2909029fa66f228
- stable/c/ced1186fea7c77e16681c7ef4802897885989c3b
- stable/c/1af874e9f4ce22ccf8b10ab5462f32c70d3be21a