{"api_version":"1","generated_at":"2026-07-26T00:27:35+00:00","cve":"CVE-2026-64481","urls":{"html":"https://cve.report/CVE-2026-64481","api":"https://cve.report/api/cve/CVE-2026-64481.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-64481","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-64481"},"summary":{"title":"ALSA: hda/cs35l41: Fix firmware load work teardown","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: hda/cs35l41: Fix firmware load work teardown\n\ncs35l41_hda creates ALSA controls whose private data points at the\ncs35l41_hda object. The firmware load control can also queue\nfw_load_work.\n\nThose controls are not removed on component unbind, and device remove\nonly cancels fw_load_work through cs35l41_remove_dsp(). That helper is\nskipped when halo_initialized is false. With firmware_autostart\ndisabled, a firmware load can be requested before the DSP has been\ninitialized. If the component or device is removed before the queued\nwork runs, the worker can run after teardown and dereference driver\nstate that is no longer valid.\n\nTrack the created controls and remove them on unbind so no new control\ncallback can reach the driver data or queue more work. Then cancel\nfw_load_work to drain any request that was already queued. Also cancel\nthe work unconditionally during device remove before runtime PM teardown.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-07-25 10:17:33","updated_at":"2026-07-25 10:17:33"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/b65020d5398f499c09498c9786dba6d67ae57664","name":"https://git.kernel.org/stable/c/b65020d5398f499c09498c9786dba6d67ae57664","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8947215c0136c9d905e4a46d824824f8b48a2e5b","name":"https://git.kernel.org/stable/c/8947215c0136c9d905e4a46d824824f8b48a2e5b","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ce0a903d0591e3e2c790c5b628802b08d1b287cc","name":"https://git.kernel.org/stable/c/ce0a903d0591e3e2c790c5b628802b08d1b287cc","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/d6a40a4d083ef74d00c8f9516cb5ff07ac70720b","name":"https://git.kernel.org/stable/c/d6a40a4d083ef74d00c8f9516cb5ff07ac70720b","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-64481","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64481","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 8947215c0136c9d905e4a46d824824f8b48a2e5b git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 ce0a903d0591e3e2c790c5b628802b08d1b287cc git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 d6a40a4d083ef74d00c8f9516cb5ff07ac70720b git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 b65020d5398f499c09498c9786dba6d67ae57664 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.0","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.0 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.97 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.39 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.4 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"64481","cve":"CVE-2026-64481","epss":"0.002090000","percentile":"0.111700000","score_date":"2026-07-25","updated_at":"2026-07-26 00:12:33"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["sound/hda/codecs/side-codecs/cs35l41_hda.c","sound/hda/codecs/side-codecs/cs35l41_hda.h"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"8947215c0136c9d905e4a46d824824f8b48a2e5b","status":"affected","version":"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8","versionType":"git"},{"lessThan":"ce0a903d0591e3e2c790c5b628802b08d1b287cc","status":"affected","version":"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8","versionType":"git"},{"lessThan":"d6a40a4d083ef74d00c8f9516cb5ff07ac70720b","status":"affected","version":"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8","versionType":"git"},{"lessThan":"b65020d5398f499c09498c9786dba6d67ae57664","status":"affected","version":"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["sound/hda/codecs/side-codecs/cs35l41_hda.c","sound/hda/codecs/side-codecs/cs35l41_hda.h"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.0"},{"lessThan":"6.0","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.97","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.39","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.4","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.97","versionStartIncluding":"6.0","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.39","versionStartIncluding":"6.0","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.4","versionStartIncluding":"6.0","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2-rc1","versionStartIncluding":"6.0","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: hda/cs35l41: Fix firmware load work teardown\n\ncs35l41_hda creates ALSA controls whose private data points at the\ncs35l41_hda object. The firmware load control can also queue\nfw_load_work.\n\nThose controls are not removed on component unbind, and device remove\nonly cancels fw_load_work through cs35l41_remove_dsp(). That helper is\nskipped when halo_initialized is false. With firmware_autostart\ndisabled, a firmware load can be requested before the DSP has been\ninitialized. If the component or device is removed before the queued\nwork runs, the worker can run after teardown and dereference driver\nstate that is no longer valid.\n\nTrack the created controls and remove them on unbind so no new control\ncallback can reach the driver data or queue more work. Then cancel\nfw_load_work to drain any request that was already queued. Also cancel\nthe work unconditionally during device remove before runtime PM teardown."}],"providerMetadata":{"dateUpdated":"2026-07-25T08:51:42.430Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/8947215c0136c9d905e4a46d824824f8b48a2e5b"},{"url":"https://git.kernel.org/stable/c/ce0a903d0591e3e2c790c5b628802b08d1b287cc"},{"url":"https://git.kernel.org/stable/c/d6a40a4d083ef74d00c8f9516cb5ff07ac70720b"},{"url":"https://git.kernel.org/stable/c/b65020d5398f499c09498c9786dba6d67ae57664"}],"title":"ALSA: hda/cs35l41: Fix firmware load work teardown","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-64481","datePublished":"2026-07-25T08:51:42.430Z","dateReserved":"2026-07-19T15:36:31.791Z","dateUpdated":"2026-07-25T08:51:42.430Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-07-25 10:17:33","lastModifiedDate":"2026-07-25 10:17:33","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"64481","Ordinal":"1","Title":"ALSA: hda/cs35l41: Fix firmware load work teardown","CVE":"CVE-2026-64481","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"64481","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: hda/cs35l41: Fix firmware load work teardown\n\ncs35l41_hda creates ALSA controls whose private data points at the\ncs35l41_hda object. The firmware load control can also queue\nfw_load_work.\n\nThose controls are not removed on component unbind, and device remove\nonly cancels fw_load_work through cs35l41_remove_dsp(). That helper is\nskipped when halo_initialized is false. With firmware_autostart\ndisabled, a firmware load can be requested before the DSP has been\ninitialized. If the component or device is removed before the queued\nwork runs, the worker can run after teardown and dereference driver\nstate that is no longer valid.\n\nTrack the created controls and remove them on unbind so no new control\ncallback can reach the driver data or queue more work. Then cancel\nfw_load_work to drain any request that was already queued. Also cancel\nthe work unconditionally during device remove before runtime PM teardown.","Type":"Description","Title":"ALSA: hda/cs35l41: Fix firmware load work teardown"}]}}}