Bug 1227627 (CVE-2024-39491)

Summary: VUL-0: CVE-2024-39491: kernel: ALSA: hda: cs35l56: Fix lifetime of cs_dsp instance
Product: [Novell Products] SUSE Security Incidents Reporter: SMASH SMASH <smash_bz>
Component: IncidentsAssignee: Security Team bot <security-team>
Status: NEW --- QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P3 - Medium CC: andrea.mattiazzo, mkoutny
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/413567/
Whiteboard:
Found By: Security Response Team Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description SMASH SMASH 2024-07-10 12:10:01 UTC
In the Linux kernel, the following vulnerability has been resolved:

ALSA: hda: cs35l56: Fix lifetime of cs_dsp instance

The cs_dsp instance is initialized in the driver probe() so it
should be freed in the driver remove(). Also fix a missing call
to cs_dsp_remove() in the error path of cs35l56_hda_common_probe().

The call to cs_dsp_remove() was being done in the component unbind
callback cs35l56_hda_unbind(). This meant that if the driver was
unbound and then re-bound it would be using an uninitialized cs_dsp
instance.

It is best to initialize the cs_dsp instance in probe() so that it
can return an error if it fails. The component binding API doesn't
have any error handling so there's no way to handle a failure if
cs_dsp was initialized in the bind.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-39491
https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2024/CVE-2024-39491.mbox
https://git.kernel.org/stable/c/9054c474f9c219e58a441e401c0e6e38fe713ff1
https://git.kernel.org/stable/c/60d5e087e5f334475b032ad7e6ad849fb998f303
https://git.kernel.org/stable/c/d344873c4cbde249b7152d36a273bcc45864001e
https://www.cve.org/CVERecord?id=CVE-2024-39491
https://bugzilla.redhat.com/show_bug.cgi?id=2297061