FKIE_CVE-2026-93039

Vulnerability from fkie_nvd - Published: 2026-09-17 17:17 - Updated: 2026-09-17 17:17
Severity
Summary
In the Linux kernel, the following vulnerability has been resolved: ASoC: meson: Keep link pointers valid on realloc failure meson_card_reallocate_links() grows the DAI link and private data arrays with two consecutive krealloc() calls and updates the owner pointers only after both calls have succeeded. A successful krealloc() may move the data: it frees the old block and returns a new one. When that happens for the link array and the second krealloc() then fails, card->dai_link still points to the block that krealloc() already freed, and the error path frees the new block too. The probe error path then calls meson_card_clean_references(), which dereferences card->dai_link and kfree()s it again, resulting in a use-after-free and a double free. Commit card->dai_link and card->num_links right after the first krealloc() succeeds, so the pointer always refers to a valid allocation that meson_card_clean_references() can walk and free. krealloc() with __GFP_ZERO zero-initializes the added entries, so walking them on the error path is safe. With both failure paths reduced to a plain return, drop the goto labels and the error message.
Impacted products
Vendor Product Version

{
  "affected": [
    {
      "affectedData": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "sound/soc/meson/meson-card-utils.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "de33afc57f24538186bccf4c4f6c65dd38634fd8",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            },
            {
              "lessThan": "1c1485343b7c1c39dab7ecb9cd16ba49fd0ce642",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            },
            {
              "lessThan": "8db0a0fc84e80aa9924e0833aef6cc95df94e5a7",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            },
            {
              "lessThan": "41e92e0caa1fe3df2efaca346bfcaeb7fb9826ab",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            },
            {
              "lessThan": "0b30fbe6bf7cf6499b19dd886f466e7c9e820089",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            },
            {
              "lessThan": "8fec16898f184e5f8f8fdd09ff1ced2bd7ffc13d",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            },
            {
              "lessThan": "5ed1b048527bebe4529eb6e01c34dcc5d97ba5fe",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            },
            {
              "lessThan": "2aaa41cf974f83a6fb105422bac4e2f107150774",
              "status": "affected",
              "version": "7864a79f37b55769b817d5e6c5ae0ca4bfdba93b",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "sound/soc/meson/meson-card-utils.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.19"
            },
            {
              "lessThan": "4.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.52",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: meson: Keep link pointers valid on realloc failure\n\nmeson_card_reallocate_links() grows the DAI link and private data\narrays with two consecutive krealloc() calls and updates the owner\npointers only after both calls have succeeded.\n\nA successful krealloc() may move the data: it frees the old block and\nreturns a new one. When that happens for the link array and the second\nkrealloc() then fails, card-\u003edai_link still points to the block that\nkrealloc() already freed, and the error path frees the new block too.\nThe probe error path then calls meson_card_clean_references(), which\ndereferences card-\u003edai_link and kfree()s it again, resulting in a\nuse-after-free and a double free.\n\nCommit card-\u003edai_link and card-\u003enum_links right after the first\nkrealloc() succeeds, so the pointer always refers to a valid allocation\nthat meson_card_clean_references() can walk and free. krealloc() with\n__GFP_ZERO zero-initializes the added entries, so walking them on the\nerror path is safe. With both failure paths reduced to a plain return,\ndrop the goto labels and the error message."
    }
  ],
  "id": "CVE-2026-93039",
  "lastModified": "2026-09-17T17:17:56.977",
  "metrics": {},
  "published": "2026-09-17T17:17:56.977",
  "references": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/0b30fbe6bf7cf6499b19dd886f466e7c9e820089"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/1c1485343b7c1c39dab7ecb9cd16ba49fd0ce642"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/2aaa41cf974f83a6fb105422bac4e2f107150774"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/41e92e0caa1fe3df2efaca346bfcaeb7fb9826ab"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/5ed1b048527bebe4529eb6e01c34dcc5d97ba5fe"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/8db0a0fc84e80aa9924e0833aef6cc95df94e5a7"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/8fec16898f184e5f8f8fdd09ff1ced2bd7ffc13d"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/de33afc57f24538186bccf4c4f6c65dd38634fd8"
    }
  ],
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "vulnStatus": "Received"
}



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…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…