CVE-2025-71140 (GCVE-0-2025-71140)

Vulnerability from cvelistv5 – Published: 2026-01-14 15:07 – Updated: 2026-01-14 15:07
VLAI?
Title
media: mediatek: vcodec: Use spinlock for context list protection lock
Summary
In the Linux kernel, the following vulnerability has been resolved: media: mediatek: vcodec: Use spinlock for context list protection lock Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler. Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered. Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.
Severity ?
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 0a2dc707aa42214f9c4827bd57e344e29a0841d6 , < 2c1ea6214827041f548279c9eda341eda0cc8351 (git)
Affected: 6467cda18c9f9b5f2f9a0aa1e2861c653e41f382 , < b92c19675f632a41af1222027a231bc2b7efa7ed (git)
Affected: 6467cda18c9f9b5f2f9a0aa1e2861c653e41f382 , < 3e858938b0e659f6ec9ddcf853a87f1c5c3f44e1 (git)
Affected: 6467cda18c9f9b5f2f9a0aa1e2861c653e41f382 , < a5844227e0f030d2af2d85d4aed10c5eca6ca176 (git)
Affected: 23aaf824121055ba81b55f75444355bd83c8eb38 (git)
Affected: 41671f0c0182b2bae74ca7e3b0f155559e3e2fc5 (git)
Affected: 51c84a8aac6e3b59af2b0e92ba63cabe2e641a2d (git)
Create a notification for this product.
    Linux Linux Affected: 6.9
Unaffected: 0 , < 6.9 (semver)
Unaffected: 6.6.120 , ≤ 6.6.* (semver)
Unaffected: 6.12.64 , ≤ 6.12.* (semver)
Unaffected: 6.18.4 , ≤ 6.18.* (semver)
Unaffected: 6.19-rc1 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c",
            "drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c",
            "drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h",
            "drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c",
            "drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c",
            "drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h",
            "drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2c1ea6214827041f548279c9eda341eda0cc8351",
              "status": "affected",
              "version": "0a2dc707aa42214f9c4827bd57e344e29a0841d6",
              "versionType": "git"
            },
            {
              "lessThan": "b92c19675f632a41af1222027a231bc2b7efa7ed",
              "status": "affected",
              "version": "6467cda18c9f9b5f2f9a0aa1e2861c653e41f382",
              "versionType": "git"
            },
            {
              "lessThan": "3e858938b0e659f6ec9ddcf853a87f1c5c3f44e1",
              "status": "affected",
              "version": "6467cda18c9f9b5f2f9a0aa1e2861c653e41f382",
              "versionType": "git"
            },
            {
              "lessThan": "a5844227e0f030d2af2d85d4aed10c5eca6ca176",
              "status": "affected",
              "version": "6467cda18c9f9b5f2f9a0aa1e2861c653e41f382",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "23aaf824121055ba81b55f75444355bd83c8eb38",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "41671f0c0182b2bae74ca7e3b0f155559e3e2fc5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "51c84a8aac6e3b59af2b0e92ba63cabe2e641a2d",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c",
            "drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c",
            "drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h",
            "drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c",
            "drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c",
            "drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h",
            "drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.9"
            },
            {
              "lessThan": "6.9",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.120",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.64",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.19-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.120",
                  "versionStartIncluding": "6.6.27",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.64",
                  "versionStartIncluding": "6.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.4",
                  "versionStartIncluding": "6.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19-rc1",
                  "versionStartIncluding": "6.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.8.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.6.27",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.8.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: mediatek: vcodec: Use spinlock for context list protection lock\n\nPreviously a mutex was added to protect the encoder and decoder context\nlists from unexpected changes originating from the SCP IP block, causing\nthe context pointer to go invalid, resulting in a NULL pointer\ndereference in the IPI handler.\n\nTurns out on the MT8173, the VPU IPI handler is called from hard IRQ\ncontext. This causes a big warning from the scheduler. This was first\nreported downstream on the ChromeOS kernels, but is also reproducible\non mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though\nthe actual capture format is not supported, the affected code paths\nare triggered.\n\nSince this lock just protects the context list and operations on it are\nvery fast, it should be OK to switch to a spinlock."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-01-14T15:07:53.581Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2c1ea6214827041f548279c9eda341eda0cc8351"
        },
        {
          "url": "https://git.kernel.org/stable/c/b92c19675f632a41af1222027a231bc2b7efa7ed"
        },
        {
          "url": "https://git.kernel.org/stable/c/3e858938b0e659f6ec9ddcf853a87f1c5c3f44e1"
        },
        {
          "url": "https://git.kernel.org/stable/c/a5844227e0f030d2af2d85d4aed10c5eca6ca176"
        }
      ],
      "title": "media: mediatek: vcodec: Use spinlock for context list protection lock",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-71140",
    "datePublished": "2026-01-14T15:07:53.581Z",
    "dateReserved": "2026-01-13T15:30:19.660Z",
    "dateUpdated": "2026-01-14T15:07:53.581Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-71140\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-01-14T15:16:03.793\",\"lastModified\":\"2026-01-14T16:25:12.057\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmedia: mediatek: vcodec: Use spinlock for context list protection lock\\n\\nPreviously a mutex was added to protect the encoder and decoder context\\nlists from unexpected changes originating from the SCP IP block, causing\\nthe context pointer to go invalid, resulting in a NULL pointer\\ndereference in the IPI handler.\\n\\nTurns out on the MT8173, the VPU IPI handler is called from hard IRQ\\ncontext. This causes a big warning from the scheduler. This was first\\nreported downstream on the ChromeOS kernels, but is also reproducible\\non mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though\\nthe actual capture format is not supported, the affected code paths\\nare triggered.\\n\\nSince this lock just protects the context list and operations on it are\\nvery fast, it should be OK to switch to a spinlock.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2c1ea6214827041f548279c9eda341eda0cc8351\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/3e858938b0e659f6ec9ddcf853a87f1c5c3f44e1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a5844227e0f030d2af2d85d4aed10c5eca6ca176\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b92c19675f632a41af1222027a231bc2b7efa7ed\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


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 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…