CVE-2025-37979 (GCVE-0-2025-37979)

Vulnerability from cvelistv5 – Published: 2025-05-20 16:58 – Updated: 2026-08-05 11:58
VLAI
Title
ASoC: qcom: Fix sc7280 lpass potential buffer overflow
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.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 77d0ffef793da818741127f4905a3e3d45d05ac7 , < d78888853eb53f47ae16cf3aa5d0444d0331b9f8 (git)
Affected: 77d0ffef793da818741127f4905a3e3d45d05ac7 , < a12c14577882b1f2b4cff0f86265682f16e97b0c (git)
Affected: 77d0ffef793da818741127f4905a3e3d45d05ac7 , < c0ce01e0ff8a0d61a7b089ab309cdc12bc527c39 (git)
Affected: 77d0ffef793da818741127f4905a3e3d45d05ac7 , < b807b7c81a6d066757a94af7b8fa5b6a37e4d0b3 (git)
Affected: 77d0ffef793da818741127f4905a3e3d45d05ac7 , < a31a4934b31faea76e735bab17e63d02fcd8e029 (git)
Create a notification for this product.
Linux Linux Affected: 5.18
Unaffected: 0 , < 5.18 (semver)
Unaffected: 6.1.136 , ≤ 6.1.* (semver)
Unaffected: 6.6.88 , ≤ 6.6.* (semver)
Unaffected: 6.12.25 , ≤ 6.12.* (semver)
Unaffected: 6.14.4 , ≤ 6.14.* (semver)
Unaffected: 6.15 , ≤ * (original_commit_for_fix)
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",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-37979",
      "date": "2026-08-05",
      "epss": "0.0018",
      "percentile": "0.07776"
    },
    "microsoft_vex": {
      "current_release_date": "2026-02-18T02:38:19.000Z",
      "cve": "CVE-2025-37979",
      "id": "msrc_CVE-2025-37979",
      "initial_release_date": "2025-05-02T00:00:00.000Z",
      "product_status:fixed": "2",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "ASoC: qcom: Fix sc7280 lpass potential buffer overflow",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-37979.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-37979\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-05-20T17:15:48.540\",\"lastModified\":\"2026-07-30T06:22:42.587\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"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.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ASoC: qcom: Correcci\u00f3n de un posible desbordamiento de b\u00fafer en sc7280 lpass. Los valores de caso introducidos en el commit 5f78e1fb7a3e (\\\"ASoC: qcom: A\u00f1adir compatibilidad de controlador para la soluci\u00f3n audioreach\\\") provocan acceso fuera de los l\u00edmites en matrices de datos del controlador sc7280 (p. ej., en el caso de RX_CODEC_DMA_RX_0 en sc7280_snd_hw_params()). Redefinir LPASS_MAX_PORTS para considerar el ID de puerto m\u00e1ximo posible para q6dsp, ya que el controlador sc7280 utiliza algunos de esos valores. Encontrado por el Centro de Verificaci\u00f3n de Linux (linuxtesting.org) con SVACE.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"sound/soc/qcom/lpass.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"77d0ffef793da818741127f4905a3e3d45d05ac7\",\"lessThan\":\"d78888853eb53f47ae16cf3aa5d0444d0331b9f8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"77d0ffef793da818741127f4905a3e3d45d05ac7\",\"lessThan\":\"a12c14577882b1f2b4cff0f86265682f16e97b0c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"77d0ffef793da818741127f4905a3e3d45d05ac7\",\"lessThan\":\"c0ce01e0ff8a0d61a7b089ab309cdc12bc527c39\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"77d0ffef793da818741127f4905a3e3d45d05ac7\",\"lessThan\":\"b807b7c81a6d066757a94af7b8fa5b6a37e4d0b3\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"77d0ffef793da818741127f4905a3e3d45d05ac7\",\"lessThan\":\"a31a4934b31faea76e735bab17e63d02fcd8e029\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"sound/soc/qcom/lpass.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.18\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.18\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.136\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.88\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.25\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.14.4\",\"lessThanOrEqual\":\"6.14.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-787\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.18\",\"versionEndExcluding\":\"6.1.136\",\"matchCriteriaId\":\"23059D34-0105-4CBF-AED8-770F8473FAF4\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.88\",\"matchCriteriaId\":\"6E5947E5-45E3-462A-829B-382B3B1C61BD\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.25\",\"matchCriteriaId\":\"8E59EE65-FA6B-4AE4-8125-26135E28BF35\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.14.4\",\"matchCriteriaId\":\"29FA1A8E-1C2A-4B0B-B397-2C915ECDEDEE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"8D465631-2980-487A-8E65-40AE2B9F8ED1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"4C9D071F-B28E-46EC-AC61-22B913390211\"}]}]},{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*\",\"matchCriteriaId\":\"FA6FEEC2-9F11-4643-8827-749718254FED\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/a12c14577882b1f2b4cff0f86265682f16e97b0c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a31a4934b31faea76e735bab17e63d02fcd8e029\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b807b7c81a6d066757a94af7b8fa5b6a37e4d0b3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c0ce01e0ff8a0d61a7b089ab309cdc12bc527c39\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/d78888853eb53f47ae16cf3aa5d0444d0331b9f8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Third Party Advisory\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:31:51+00:00",
      "cve": "CVE-2025-37979",
      "id": "CVE-2025-37979",
      "initial_release_date": "2025-05-20T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: ASoC: qcom: Fix sc7280 lpass potential buffer overflow",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-37979.json",
      "version": "3"
    }
  }
}



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…