CVE-2026-64481 (GCVE-0-2026-64481)

Vulnerability from cvelistv5 – Published: 2026-07-25 08:51 – Updated: 2026-07-25 08:51
VLAI
Title
ALSA: hda/cs35l41: Fix firmware load work teardown
Summary
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.
Severity
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 , < 8947215c0136c9d905e4a46d824824f8b48a2e5b (git)
Affected: 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 , < ce0a903d0591e3e2c790c5b628802b08d1b287cc (git)
Affected: 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 , < d6a40a4d083ef74d00c8f9516cb5ff07ac70720b (git)
Affected: 47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8 , < b65020d5398f499c09498c9786dba6d67ae57664 (git)
Create a notification for this product.
Linux Linux Affected: 6.0
Unaffected: 0 , < 6.0 (semver)
Unaffected: 6.12.97 , ≤ 6.12.* (semver)
Unaffected: 6.18.39 , ≤ 6.18.* (semver)
Unaffected: 7.1.4 , ≤ 7.1.* (semver)
Unaffected: 7.2-rc1 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "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",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-64481",
      "date": "2026-07-25",
      "epss": "0.00209",
      "percentile": "0.1117"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-64481\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-07-25T10:17:33.733\",\"lastModified\":\"2026-07-25T10:17:33.733\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"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.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"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\",\"versions\":[{\"version\":\"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8\",\"lessThan\":\"8947215c0136c9d905e4a46d824824f8b48a2e5b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8\",\"lessThan\":\"ce0a903d0591e3e2c790c5b628802b08d1b287cc\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8\",\"lessThan\":\"d6a40a4d083ef74d00c8f9516cb5ff07ac70720b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"47ceabd99a28399f8971f4ca0a37ebc0a21dd2a8\",\"lessThan\":\"b65020d5398f499c09498c9786dba6d67ae57664\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"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\",\"versions\":[{\"version\":\"6.0\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.97\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.39\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.4\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/8947215c0136c9d905e4a46d824824f8b48a2e5b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b65020d5398f499c09498c9786dba6d67ae57664\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ce0a903d0591e3e2c790c5b628802b08d1b287cc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d6a40a4d083ef74d00c8f9516cb5ff07ac70720b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "suse_vex": {
      "aggregate_severity": "not set",
      "current_release_date": "2026-07-25T15:58:32Z",
      "cve": "CVE-2026-64481",
      "id": "CVE-2026-64481",
      "initial_release_date": "2026-07-25T15:58:32Z",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-64481",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-64481.json",
      "version": "2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…