CVE-2025-37979 (GCVE-0-2025-37979)
Vulnerability from cvelistv5
Published
2025-05-20 16:58
Modified
2026-08-05 11:58
Summary
In the Linux kernel, the following vulnerability has been resolved: ASoC: qcom: Fix sc7280 lpass potential buffer overflow Case values introduced in commit 5f78e1fb7a3e ("ASoC: qcom: Add driver support for audioreach solution") cause out of bounds access in arrays of sc7280 driver data (e.g. in case of RX_CODEC_DMA_RX_0 in sc7280_snd_hw_params()). Redefine LPASS_MAX_PORTS to consider the maximum possible port id for q6dsp as sc7280 driver utilizes some of those values. Found by Linux Verification Center (linuxtesting.org) with SVACE.
Impacted products
Vendor Product Version
Linux Linux Version: 77d0ffef793da818741127f4905a3e3d45d05ac7
Version: 77d0ffef793da818741127f4905a3e3d45d05ac7
Version: 77d0ffef793da818741127f4905a3e3d45d05ac7
Version: 77d0ffef793da818741127f4905a3e3d45d05ac7
Version: 77d0ffef793da818741127f4905a3e3d45d05ac7
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T19:57:56.701Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "sound/soc/qcom/lpass.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d78888853eb53f47ae16cf3aa5d0444d0331b9f8",
              "status": "affected",
              "version": "77d0ffef793da818741127f4905a3e3d45d05ac7",
              "versionType": "git"
            },
            {
              "lessThan": "a12c14577882b1f2b4cff0f86265682f16e97b0c",
              "status": "affected",
              "version": "77d0ffef793da818741127f4905a3e3d45d05ac7",
              "versionType": "git"
            },
            {
              "lessThan": "c0ce01e0ff8a0d61a7b089ab309cdc12bc527c39",
              "status": "affected",
              "version": "77d0ffef793da818741127f4905a3e3d45d05ac7",
              "versionType": "git"
            },
            {
              "lessThan": "b807b7c81a6d066757a94af7b8fa5b6a37e4d0b3",
              "status": "affected",
              "version": "77d0ffef793da818741127f4905a3e3d45d05ac7",
              "versionType": "git"
            },
            {
              "lessThan": "a31a4934b31faea76e735bab17e63d02fcd8e029",
              "status": "affected",
              "version": "77d0ffef793da818741127f4905a3e3d45d05ac7",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "sound/soc/qcom/lpass.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.18"
            },
            {
              "lessThan": "5.18",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.136",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.88",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.25",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.136",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.88",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.25",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.4",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: qcom: Fix sc7280 lpass potential buffer overflow\n\nCase values introduced in commit\n5f78e1fb7a3e (\"ASoC: qcom: Add driver support for audioreach solution\")\ncause out of bounds access in arrays of sc7280 driver data (e.g. in case\nof RX_CODEC_DMA_RX_0 in sc7280_snd_hw_params()).\n\nRedefine LPASS_MAX_PORTS to consider the maximum possible port id for\nq6dsp as sc7280 driver utilizes some of those values.\n\nFound by Linux Verification Center (linuxtesting.org) with SVACE."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The out-of-bounds accesses are reached only through ALSA PCM operations (open/close, SNDRV_PCM_IOCTL_HW_PARAMS, prepare/hw_free) on the local sound device node /dev/snd/pcmC*D*. There is no remote or adjacent-network path into the sc7280 machine driver.\nAC:L - On an affected sc7280 board (audioreach/ADSP device tree, where cpu_dai-\u003eid is a q6afe port id such as RX_CODEC_DMA_RX_0=113), the index is unconditionally out of the 34-entry arrays, so a single open()/close() or hw_params() deterministically triggers the OOB read, write and kfree() \u2014 no race, no timing, no memory-layout luck required to trigger.\nPR:L - The attacker needs only an unprivileged local account with access to the PCM device node \u2014 membership in the \"audio\" group on Chromebook/embedded systems, or an ordinary audio-capable app on Android. No capability, root, or namespace privilege is checked anywhere along the soc_pcm_open/soc_pcm_hw_params path.\nUI:N - The attacker opens and configures the PCM device directly; no victim must plug in hardware, mount anything, or play audio. The vulnerable callbacks run purely as a result of the attacker\u0027s own syscalls.\nS:U - The corruption is confined to kernel heap memory within the same kernel security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - sc7280_snd_shutdown() reads a pointer from out of bounds (data-\u003esruntime[113/120]) and hands it to kfree(), and the OOB pointer write can clobber an adjacent heap object; such heap corruption plus an attacker-groomable free is readily leveraged into arbitrary kernel memory disclosure.\nI:H - hw_params() writes a kernel heap pointer, and prepare() writes a byte, hundreds of bytes past the end of the 34-entry arrays inside the devm_kzalloc\u0027d sc7280_snd_data object, and shutdown() frees an out-of-bounds-read pointer \u2014 an out-of-bounds write plus an invalid free, both classic primitives for control-flow hijacking.\nA:H - Corrupting an adjacent slab object and calling kfree() on a pointer read from out of bounds reliably produces slab corruption, BUG_ON/KASAN reports, or a kernel panic, and the sequence can be repeated at will by an unprivileged local user."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:58:44.888Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d78888853eb53f47ae16cf3aa5d0444d0331b9f8"
        },
        {
          "url": "https://git.kernel.org/stable/c/a12c14577882b1f2b4cff0f86265682f16e97b0c"
        },
        {
          "url": "https://git.kernel.org/stable/c/c0ce01e0ff8a0d61a7b089ab309cdc12bc527c39"
        },
        {
          "url": "https://git.kernel.org/stable/c/b807b7c81a6d066757a94af7b8fa5b6a37e4d0b3"
        },
        {
          "url": "https://git.kernel.org/stable/c/a31a4934b31faea76e735bab17e63d02fcd8e029"
        }
      ],
      "title": "ASoC: qcom: Fix sc7280 lpass potential buffer overflow",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-37979",
    "datePublished": "2025-05-20T16:58:22.103Z",
    "dateReserved": "2025-04-16T04:51:23.975Z",
    "dateUpdated": "2026-08-05T11:58:44.888Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…