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

Vulnerability from cvelistv5 – Published: 2026-01-14 15:07 – Updated: 2026-02-09 08:35
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 , ≤ * (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",
              "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",
                  "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-02-09T08:35:37.584Z",
        "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-02-09T08:35:37.584Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-71140",
      "date": "2026-04-15",
      "epss": "0.00026",
      "percentile": "0.07336"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-71140\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-01-14T15:16:03.793\",\"lastModified\":\"2026-04-15T14:34:27.800\",\"vulnStatus\":\"Deferred\",\"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.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\\n\\nmedia: mediatek: vcodec: Usar spinlock para el bloqueo de protecci\u00f3n de la lista de contextos\\n\\nAnteriormente se a\u00f1adi\u00f3 un mutex para proteger las listas de contextos del codificador y decodificador de cambios inesperados originados por el bloque IP SCP, haciendo que el puntero de contexto se volviera inv\u00e1lido, resultando en una desreferencia de puntero NULL en el manejador IPI.\\n\\nResulta que en el MT8173, el manejador IPI de la VPU es llamado desde el contexto de IRQ duro. Esto causa una gran advertencia del planificador. Esto fue reportado por primera vez en versiones derivadas en los kernels de ChromeOS, pero tambi\u00e9n es reproducible en la rama principal usando Fluster con los decodificadores FFmpeg v4l2m2m. Aunque el formato de captura real no es compatible, las rutas de c\u00f3digo afectadas se activan.\\n\\nDado que este bloqueo solo protege la lista de contextos y las operaciones sobre ella son muy r\u00e1pidas, deber\u00eda estar bien cambiar a un 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…