spi: Fix use-after-free with devm_spi_alloc_*
Description
In the Linux kernel, the following vulnerability has been resolved:
spi: Fix use-after-free with devm_spi_alloc_*
We can't rely on the contents of the devres list during spi_unregister_controller(), as the list is already torn down at the time we perform devres_find() for devm_spi_release_controller. This causes devices registered with devm_spi_alloc_{master,slave}() to be mistakenly identified as legacy, non-devm managed devices and have their reference counters decremented below 0.
------------[ cut here ]------------ WARNING: CPU: 1 PID: 660 at lib/refcount.c:28 refcount_warn_saturate+0x108/0x174 [] (refcount_warn_saturate) from [] (kobject_put+0x90/0x98) [] (kobject_put) from [] (put_device+0x20/0x24) r4:b6700140 [] (put_device) from [] (devm_spi_release_controller+0x3c/0x40) [] (devm_spi_release_controller) from [] (release_nodes+0x84/0xc4) r5:b6700180 r4:b6700100 [] (release_nodes) from [] (devres_release_all+0x5c/0x60) r8:b1638c54 r7:b117ad94 r6:b1638c10 r5:b117ad94 r4:b163dc10 [] (devres_release_all) from [] (__device_release_driver+0x144/0x1ec) r5:b117ad94 r4:b163dc10 [] (__device_release_driver) from [] (device_driver_detach+0x84/0xa0) r9:00000000 r8:00000000 r7:b117ad94 r6:b163dc54 r5:b1638c10 r4:b163dc10 [] (device_driver_detach) from [] (unbind_store+0xe4/0xf8)
Instead, determine the devm allocation state as a flag on the controller which is guaranteed to be stable during cleanup.
Affected products
44- osv-coords43 versionspkg:rpm/suse/kernel-64kb&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-64kb&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-64kb&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-default-base&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Enterprise%20Micro%205.1pkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Enterprise%20Micro%205.2pkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/kernel-default&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20High%20Availability%20Extension%2015%20SP3pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20Live%20Patching%2015%20SP3pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20Micro%205.1pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20Micro%205.2pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/kernel-docs&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-docs&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-docs&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-docs&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/kernel-livepatch-SLE15-SP3_Update_43&distro=SUSE%20Linux%20Enterprise%20Live%20Patching%2015%20SP3pkg:rpm/suse/kernel-obs-build&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-obs-build&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-obs-build&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-obs-build&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/kernel-preempt&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-preempt&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-preempt&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-preempt&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/kernel-rt&distro=SUSE%20Linux%20Enterprise%20Micro%205.1pkg:rpm/suse/kernel-rt&distro=SUSE%20Linux%20Enterprise%20Micro%205.2pkg:rpm/suse/kernel-source&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-source&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-source&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-source&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/kernel-source-rt&distro=SUSE%20Linux%20Enterprise%20Micro%205.1pkg:rpm/suse/kernel-source-rt&distro=SUSE%20Linux%20Enterprise%20Micro%205.2pkg:rpm/suse/kernel-syms&distro=SUSE%20Enterprise%20Storage%207.1pkg:rpm/suse/kernel-syms&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP3-LTSSpkg:rpm/suse/kernel-syms&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSSpkg:rpm/suse/kernel-syms&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP3pkg:rpm/suse/kernel-zfcpdump&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP3-LTSS
< 5.3.18-150300.59.158.1+ 42 more
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1.150300.18.92.5
- (no CPE)range: < 5.3.18-150300.59.158.1.150300.18.92.5
- (no CPE)range: < 5.3.18-150300.59.158.1.150300.18.92.5
- (no CPE)range: < 5.3.18-150300.59.158.1.150300.18.92.5
- (no CPE)range: < 5.3.18-150300.59.158.1.150300.18.92.5
- (no CPE)range: < 5.3.18-150300.59.158.1.150300.18.92.5
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 1-150300.7.3.5
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.166.1
- (no CPE)range: < 5.3.18-150300.166.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.166.1
- (no CPE)range: < 5.3.18-150300.166.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
- (no CPE)range: < 5.3.18-150300.59.158.1
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
9- git.kernel.org/stable/c/001c8e83646ad3b847b18f6ac55a54367d917d74mitre
- git.kernel.org/stable/c/28a5529068c51cdf0295ab1e11a99a3a909a03e4mitre
- git.kernel.org/stable/c/62bb2c7f2411a0045c24831f11ecacfc35610815mitre
- git.kernel.org/stable/c/794aaf01444d4e765e2b067cba01cc69c1c68ed9mitre
- git.kernel.org/stable/c/8735248ebb918d25427965f0db07939ed0473ec6mitre
- git.kernel.org/stable/c/8bf96425c90f5c1dcf3b7b9df568019a1d4b8a0emitre
- git.kernel.org/stable/c/8e029707f50a82c53172359c686b2536ab54e58cmitre
- git.kernel.org/stable/c/c7fabe372a9031acd00498bc718ce27c253abfd1mitre
- git.kernel.org/stable/c/cee78aa24578edac8cf00513dca618c0acc17cd7mitre
News mentions
0No linked articles in our index yet.