Description
In the Linux kernel, the following vulnerability has been resolved: ALSA: hda/cs35l41: Fix firmware load work teardown cs35l41_hda creates ALSA controls whose private data points at the cs35l41_hda object. The firmware load control can also queue fw_load_work. Those controls are not removed on component unbind, and device remove only cancels fw_load_work through cs35l41_remove_dsp(). That helper is skipped when halo_initialized is false. With firmware_autostart disabled, a firmware load can be requested before the DSP has been initialized. If the component or device is removed before the queued work runs, the worker can run after teardown and dereference driver state that is no longer valid. Track the created controls and remove them on unbind so no new control callback can reach the driver data or queue more work. Then cancel fw_load_work to drain any request that was already queued. Also cancel the work unconditionally during device remove before runtime PM teardown.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 to < b3647e5b7b817272fdef057948c37fcb0704edc7affected47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 to < 3e339c88b8c3044919fd1936a8b23124285d0de6affected47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 to < 8947215c0136c9d905e4a46d824824f8b48a2e5baffected47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 to < ce0a903d0591e3e2c790c5b628802b08d1b287ccaffected47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 to < d6a40a4d083ef74d00c8f9516cb5ff07ac70720baffected47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 to < b65020d5398f499c09498c9786dba6d67ae57664affected
Linux Linux
Default version status: affected
6.0affected0 to < 6.0unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b3647e5b7b817272fdef057948c37fcb0704edc7 ↗
- https://git.kernel.org/stable/c/3e339c88b8c3044919fd1936a8b23124285d0de6 ↗
- https://git.kernel.org/stable/c/8947215c0136c9d905e4a46d824824f8b48a2e5b ↗
- https://git.kernel.org/stable/c/ce0a903d0591e3e2c790c5b628802b08d1b287cc ↗
- https://git.kernel.org/stable/c/d6a40a4d083ef74d00c8f9516cb5ff07ac70720b ↗
- https://git.kernel.org/stable/c/b65020d5398f499c09498c9786dba6d67ae57664 ↗