CVE-2026-97579 (GCVE-0-2026-97579)

Vulnerability from cvelistv5 – Published: 2026-09-25 10:22 – Updated: 2026-09-25 14:41
VLAI
Title
media: mediatek: vcodec: bound AV1 tile-start copy to the array capacity
Summary
In the Linux kernel, the following vulnerability has been resolved: media: mediatek: vcodec: bound AV1 tile-start copy to the array capacity vdec_av1_slice_setup_tile() copies tile_cols + 1 / tile_rows + 1 entries into mi_col_starts[] / mi_row_starts[] from the bitstream tile_info. Bound the copy to the array capacity.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 0934d37596151edce115c6d0843a9ad7d5e5d232 , < ad47a250afafa3a51cfb4a004463ff28e66c596e (git)
Affected: 0934d37596151edce115c6d0843a9ad7d5e5d232 , < 7992059c045780095ba5a696dcb2f5400a82803c (git)
Affected: 0934d37596151edce115c6d0843a9ad7d5e5d232 , < eb0ea3898e3921900939e30c3946dd2b52281859 (git)
Affected: 0934d37596151edce115c6d0843a9ad7d5e5d232 , < 37bef2170d4c88fc3d708eecf3ef0f4032bc1372 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.6
Unaffected: 0 , < 6.6 (semver)
Unaffected: 6.12.111 , ≤ 6.12.* (semver)
Unaffected: 6.18.53 , ≤ 6.18.* (semver)
Unaffected: 7.2.7 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc3 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ad47a250afafa3a51cfb4a004463ff28e66c596e",
              "status": "affected",
              "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
              "versionType": "git"
            },
            {
              "lessThan": "7992059c045780095ba5a696dcb2f5400a82803c",
              "status": "affected",
              "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
              "versionType": "git"
            },
            {
              "lessThan": "eb0ea3898e3921900939e30c3946dd2b52281859",
              "status": "affected",
              "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
              "versionType": "git"
            },
            {
              "lessThan": "37bef2170d4c88fc3d708eecf3ef0f4032bc1372",
              "status": "affected",
              "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.6"
            },
            {
              "lessThan": "6.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.111",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc3",
                  "versionStartIncluding": "6.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: bound AV1 tile-start copy to the array capacity\n\nvdec_av1_slice_setup_tile() copies tile_cols + 1 / tile_rows + 1 entries\ninto mi_col_starts[] / mi_row_starts[] from the bitstream tile_info. Bound\nthe copy to the array capacity."
        }
      ],
      "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 bad tile_info.tile_cols/tile_rows reach vdec_av1_slice_setup_tile() from a local process that sets V4L2_CID_STATELESS_AV1_FRAME via VIDIOC_S_EXT_CTRLS on the mtk-vcodec decoder /dev/videoN and queues a request. A spec-conforming AV1 parser caps tile counts at 64, so a remote bitstream does not produce the malformed values.\nAC:L - The attacker sets tile_cols or tile_rows to any value from 65 to 255. validate_av1_frame() never checks them, and the driver\u0027s num_tiles check in vdec_av1_slice_setup_tile_group() runs after vdec_av1_slice_setup_pfc() has already done the copy, so the overflow happens on every such request.\nPR:L - It needs only the ability to open the decoder video node, which is normally granted to the video group or to media/GPU processes. No capability check lies on the ioctl or request-queue path to vdec_av1_slice_lat_decode().\nUI:N - The attacker supplies the control payload and queues the request themselves. No other user has to do anything.\nS:U - This is a heap overflow in kernel memory. It gives kernel-level impact within the same security authority, not a VM or IOMMU boundary crossing.\nC:H - Writing up to 764 bytes past mi_row_starts[] runs off the end of the kzalloc\u0027d vdec_av1_slice_pfc into the neighbouring slab object. That corruption can be used to build read primitives and leak kernel memory.\nI:H - The written values are ALIGN(ctrl_tile-\u003emi_*_starts[i]) \u003e\u003e mib_size_log2, taken from the attacker\u0027s own control payload. This gives an attacker-shaped heap out-of-bounds write that can corrupt neighbouring objects.\nA:H - Corrupting the pfc fields past the tile arrays (frame, state, ref_idx) and the neighbouring slab object can oops the kernel or hang the decoder, and any local user with device access can repeat it."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T14:41:22.453Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ad47a250afafa3a51cfb4a004463ff28e66c596e"
        },
        {
          "url": "https://git.kernel.org/stable/c/7992059c045780095ba5a696dcb2f5400a82803c"
        },
        {
          "url": "https://git.kernel.org/stable/c/eb0ea3898e3921900939e30c3946dd2b52281859"
        },
        {
          "url": "https://git.kernel.org/stable/c/37bef2170d4c88fc3d708eecf3ef0f4032bc1372"
        }
      ],
      "title": "media: mediatek: vcodec: bound AV1 tile-start copy to the array capacity",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-97579",
    "datePublished": "2026-09-25T10:22:01.216Z",
    "dateReserved": "2026-09-24T16:01:01.156Z",
    "dateUpdated": "2026-09-25T14:41:22.453Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-97579",
      "date": "2026-09-28",
      "epss": "0.00163",
      "percentile": "0.04905"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ad47a250afafa3a51cfb4a004463ff28e66c596e",
                    "status": "affected",
                    "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "7992059c045780095ba5a696dcb2f5400a82803c",
                    "status": "affected",
                    "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "eb0ea3898e3921900939e30c3946dd2b52281859",
                    "status": "affected",
                    "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "37bef2170d4c88fc3d708eecf3ef0f4032bc1372",
                    "status": "affected",
                    "version": "0934d37596151edce115c6d0843a9ad7d5e5d232",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.6"
                  },
                  {
                    "lessThan": "6.6",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.111",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.53",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.7",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc3",
                    "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\nmedia: mediatek: vcodec: bound AV1 tile-start copy to the array capacity\n\nvdec_av1_slice_setup_tile() copies tile_cols + 1 / tile_rows + 1 entries\ninto mi_col_starts[] / mi_row_starts[] from the bitstream tile_info. Bound\nthe copy to the array capacity."
          }
        ],
        "id": "CVE-2026-97579",
        "lastModified": "2026-09-25T15:18:00.053",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-25T11:17:08.677",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/37bef2170d4c88fc3d708eecf3ef0f4032bc1372"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/7992059c045780095ba5a696dcb2f5400a82803c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ad47a250afafa3a51cfb4a004463ff28e66c596e"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/eb0ea3898e3921900939e30c3946dd2b52281859"
          }
        ],
        "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…

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…