CVE-2023-53748 (GCVE-0-2023-53748)

Vulnerability from cvelistv5 – Published: 2025-12-08 01:19 – Updated: 2026-08-05 09:15
VLAI
Title
media: mediatek: vcodec: Fix potential array out-of-bounds in decoder queue_setup
Summary
In the Linux kernel, the following vulnerability has been resolved: media: mediatek: vcodec: Fix potential array out-of-bounds in decoder queue_setup variable *nplanes is provided by user via system call argument. The possible value of q_data->fmt->num_planes is 1-3, while the value of *nplanes can be 1-8. The array access by index i can cause array out-of-bounds. Fix this bug by checking *nplanes against the array size.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 590577a4e5257ac3ed72999a94666ad6ba8f24bc , < 48e4e06e2c5fe1fda283d499f91492eda2248bb9 (git)
Affected: 590577a4e5257ac3ed72999a94666ad6ba8f24bc , < b8e19bf3b4aebd855be01b64674187dcf6d1db51 (git)
Affected: 590577a4e5257ac3ed72999a94666ad6ba8f24bc , < 8fbcf730cb89c3647f3365226fe7014118fa93c7 (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.10
Unaffected: 0 , < 4.10 (semver)
Unaffected: 6.1.30 , ≤ 6.1.* (semver)
Unaffected: 6.3.4 , ≤ 6.3.* (semver)
Unaffected: 6.4 , ≤ * (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/mtk_vcodec_dec.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "48e4e06e2c5fe1fda283d499f91492eda2248bb9",
              "status": "affected",
              "version": "590577a4e5257ac3ed72999a94666ad6ba8f24bc",
              "versionType": "git"
            },
            {
              "lessThan": "b8e19bf3b4aebd855be01b64674187dcf6d1db51",
              "status": "affected",
              "version": "590577a4e5257ac3ed72999a94666ad6ba8f24bc",
              "versionType": "git"
            },
            {
              "lessThan": "8fbcf730cb89c3647f3365226fe7014118fa93c7",
              "status": "affected",
              "version": "590577a4e5257ac3ed72999a94666ad6ba8f24bc",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.10"
            },
            {
              "lessThan": "4.10",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.30",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.3.*",
              "status": "unaffected",
              "version": "6.3.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.4",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.30",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3.4",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: mediatek: vcodec: Fix potential array out-of-bounds in decoder queue_setup\n\nvariable *nplanes is provided by user via system call argument. The\npossible value of q_data-\u003efmt-\u003enum_planes is 1-3, while the value\nof *nplanes can be 1-8. The array access by index i can cause array\nout-of-bounds.\n\nFix this bug by checking *nplanes against the array size."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached only through `ioctl(VIDIOC_CREATE_BUFS)` on the MediaTek decoder character device `/dev/videoN`, which requires local system access. There is no network or remote data path into `vb2ops_vdec_queue_setup()`.\nAC:L - Both `*nplanes` (up to VIDEO_MAX_PLANES=8) and every `sizes[i]` come directly from the caller\u0027s `v4l2_create_buffers` structure, so the out-of-bounds read is triggered deterministically on the first ioctl with no race, no timing window, and no dependence on memory layout the attacker cannot influence.\nPR:L - No capability check exists anywhere on the path \u2014 only `open()` on the V4L2 decoder node, which is granted to the `video` group on ChromeOS MediaTek devices and to the mediacodec/media domain on Android. A local unprivileged account or a compromised media-codec/GPU sandbox process suffices.\nUI:N - The attacker performs `open()` plus `VIDIOC_CREATE_BUFS` entirely on their own file descriptor. No victim action, no privileged helper, and no pre-existing system state are required.\nS:U - The out-of-bounds access is confined to the kernel\u0027s own heap object (`struct mtk_vcodec_ctx`) and the impact stays within the kernel security authority. No hypervisor, IOMMU, or other trust boundary is crossed.\nC:H - The `sizes[i] \u003c q_data-\u003esizeimage[i]` comparison is an attacker-controlled oracle over out-of-bounds memory, letting the `const struct mtk_video_fmt *fmt` kernel-image pointer at offset 48 be recovered bit-by-bit via binary search \u2014 a reliable KASLR/kernel-base disclosure that is the standard enabling primitive for a full local privilege-escalation chain.\nI:N - The loop only reads `q_data-\u003esizeimage[i]`; `sizes[]` is `VB2_MAX_PLANES`-sized and the writing `else` branch is bounded by `fmt-\u003enum_planes \u003c= 3`, so there is no out-of-bounds write or other modification of kernel data.\nA:H - The out-of-bounds index into the fixed three-element `sizeimage[]` array is precisely what `CONFIG_UBSAN_BOUNDS` instruments, so on the hardened Android GKI and arm64 configurations where this MediaTek codec driver actually ships, `CONFIG_UBSAN_TRAP` turns each attacker-issued ioctl into a kernel panic."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:15:46.862Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/48e4e06e2c5fe1fda283d499f91492eda2248bb9"
        },
        {
          "url": "https://git.kernel.org/stable/c/b8e19bf3b4aebd855be01b64674187dcf6d1db51"
        },
        {
          "url": "https://git.kernel.org/stable/c/8fbcf730cb89c3647f3365226fe7014118fa93c7"
        }
      ],
      "title": "media: mediatek: vcodec: Fix potential array out-of-bounds in decoder queue_setup",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53748",
    "datePublished": "2025-12-08T01:19:07.318Z",
    "dateReserved": "2025-12-08T01:18:04.279Z",
    "dateUpdated": "2026-08-05T09:15:46.862Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-53748",
      "date": "2026-09-27",
      "epss": "0.00137",
      "percentile": "0.02567"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "48e4e06e2c5fe1fda283d499f91492eda2248bb9",
                    "status": "affected",
                    "version": "590577a4e5257ac3ed72999a94666ad6ba8f24bc",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b8e19bf3b4aebd855be01b64674187dcf6d1db51",
                    "status": "affected",
                    "version": "590577a4e5257ac3ed72999a94666ad6ba8f24bc",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "8fbcf730cb89c3647f3365226fe7014118fa93c7",
                    "status": "affected",
                    "version": "590577a4e5257ac3ed72999a94666ad6ba8f24bc",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "4.10"
                  },
                  {
                    "lessThan": "4.10",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.30",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.3.*",
                    "status": "unaffected",
                    "version": "6.3.4",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.4",
                    "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: Fix potential array out-of-bounds in decoder queue_setup\n\nvariable *nplanes is provided by user via system call argument. The\npossible value of q_data-\u003efmt-\u003enum_planes is 1-3, while the value\nof *nplanes can be 1-8. The array access by index i can cause array\nout-of-bounds.\n\nFix this bug by checking *nplanes against the array size."
          }
        ],
        "id": "CVE-2023-53748",
        "lastModified": "2026-08-04T10:19:19.703",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.1,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "NONE",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.2,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2025-12-08T02:15:50.200",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/48e4e06e2c5fe1fda283d499f91492eda2248bb9"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/8fbcf730cb89c3647f3365226fe7014118fa93c7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b8e19bf3b4aebd855be01b64674187dcf6d1db51"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Deferred"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:19:09+00:00",
      "cve": "CVE-2023-53748",
      "id": "CVE-2023-53748",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: media: mediatek: vcodec: Fix potential array out-of-bounds in decoder queue_setup",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-53748.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-29T02:05:16Z",
      "cve": "CVE-2023-53748",
      "id": "CVE-2023-53748",
      "initial_release_date": "2025-12-09T00:29:22Z",
      "product_status:known_affected": "688",
      "product_status:known_not_affected": "203",
      "product_status:recommended": "23",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2023-53748",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2023-53748.json",
      "version": "21"
    }
  }
}



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…