CVE-2026-64097 (GCVE-0-2026-64097)

Vulnerability from cvelistv5 – Published: 2026-07-19 15:40 – Updated: 2026-07-20 13:43
VLAI
Title
drm/amd/display: Validate GPIO pin LUT table size before iterating
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Validate GPIO pin LUT table size before iterating [Why&How] The GPIO pin table parsers in get_gpio_i2c_info() and bios_parser_get_gpio_pin_info() derive an element count from the VBIOS table_header.structuresize field, then iterate over gpio_pin[] entries. However, GET_IMAGE() only validates that the table header itself fits within the BIOS image. If the VBIOS reports a structuresize larger than the actual mapped data, the loop reads past the end of the BIOS image, causing an out-of-bounds read. Fix this by calling bios_get_image() to validate that the full claimed structuresize is accessible within the BIOS image before entering the loop in both functions. (cherry picked from commit ba5e95b43b773ae1bf1f66ee6b31eb774e65afe3)
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: ae79c310b1a6f97429a5784b65f125d9cc9c95b1 , < 9900f6954be779011e7c2cd42addd87baf028bc5 (git)
Affected: ae79c310b1a6f97429a5784b65f125d9cc9c95b1 , < fb30a3890d62fd50a95aef684faf64a307592e42 (git)
Affected: ae79c310b1a6f97429a5784b65f125d9cc9c95b1 , < 67461e0c15335894cc5d3b84cda823bf8cbdc886 (git)
Affected: ae79c310b1a6f97429a5784b65f125d9cc9c95b1 , < 7ca695b3122297b06a3ed605bbe1cd32c85d9f5a (git)
Affected: ae79c310b1a6f97429a5784b65f125d9cc9c95b1 , < f2a4827e980ba07de4391fa84d9c39a12726bdd7 (git)
Affected: ae79c310b1a6f97429a5784b65f125d9cc9c95b1 , < 86d2b20644b11d21fe52c596e6e922b4590a3e3f (git)
Create a notification for this product.
Linux Linux Affected: 4.15
Unaffected: 0 , < 4.15 (semver)
Unaffected: 6.1.175 , ≤ 6.1.* (semver)
Unaffected: 6.6.142 , ≤ 6.6.* (semver)
Unaffected: 6.12.92 , ≤ 6.12.* (semver)
Unaffected: 6.18.34 , ≤ 6.18.* (semver)
Unaffected: 7.0.11 , ≤ 7.0.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9900f6954be779011e7c2cd42addd87baf028bc5",
              "status": "affected",
              "version": "ae79c310b1a6f97429a5784b65f125d9cc9c95b1",
              "versionType": "git"
            },
            {
              "lessThan": "fb30a3890d62fd50a95aef684faf64a307592e42",
              "status": "affected",
              "version": "ae79c310b1a6f97429a5784b65f125d9cc9c95b1",
              "versionType": "git"
            },
            {
              "lessThan": "67461e0c15335894cc5d3b84cda823bf8cbdc886",
              "status": "affected",
              "version": "ae79c310b1a6f97429a5784b65f125d9cc9c95b1",
              "versionType": "git"
            },
            {
              "lessThan": "7ca695b3122297b06a3ed605bbe1cd32c85d9f5a",
              "status": "affected",
              "version": "ae79c310b1a6f97429a5784b65f125d9cc9c95b1",
              "versionType": "git"
            },
            {
              "lessThan": "f2a4827e980ba07de4391fa84d9c39a12726bdd7",
              "status": "affected",
              "version": "ae79c310b1a6f97429a5784b65f125d9cc9c95b1",
              "versionType": "git"
            },
            {
              "lessThan": "86d2b20644b11d21fe52c596e6e922b4590a3e3f",
              "status": "affected",
              "version": "ae79c310b1a6f97429a5784b65f125d9cc9c95b1",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.15"
            },
            {
              "lessThan": "4.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.175",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.142",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.92",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.34",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.175",
                  "versionStartIncluding": "4.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.142",
                  "versionStartIncluding": "4.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.92",
                  "versionStartIncluding": "4.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.34",
                  "versionStartIncluding": "4.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.11",
                  "versionStartIncluding": "4.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "4.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/display: Validate GPIO pin LUT table size before iterating\n\n[Why\u0026How]\nThe GPIO pin table parsers in get_gpio_i2c_info() and\nbios_parser_get_gpio_pin_info() derive an element count from the VBIOS\ntable_header.structuresize field, then iterate over gpio_pin[] entries.\nHowever, GET_IMAGE() only validates that the table header itself fits\nwithin the BIOS image. If the VBIOS reports a structuresize larger than\nthe actual mapped data, the loop reads past the end of the BIOS image,\ncausing an out-of-bounds read.\n\nFix this by calling bios_get_image() to validate that the full claimed\nstructuresize is accessible within the BIOS image before entering the\nloop in both functions.\n\n(cherry picked from commit ba5e95b43b773ae1bf1f66ee6b31eb774e65afe3)"
        }
      ],
      "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"
          }
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-07-20T13:43:17.391Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9900f6954be779011e7c2cd42addd87baf028bc5"
        },
        {
          "url": "https://git.kernel.org/stable/c/fb30a3890d62fd50a95aef684faf64a307592e42"
        },
        {
          "url": "https://git.kernel.org/stable/c/67461e0c15335894cc5d3b84cda823bf8cbdc886"
        },
        {
          "url": "https://git.kernel.org/stable/c/7ca695b3122297b06a3ed605bbe1cd32c85d9f5a"
        },
        {
          "url": "https://git.kernel.org/stable/c/f2a4827e980ba07de4391fa84d9c39a12726bdd7"
        },
        {
          "url": "https://git.kernel.org/stable/c/86d2b20644b11d21fe52c596e6e922b4590a3e3f"
        }
      ],
      "title": "drm/amd/display: Validate GPIO pin LUT table size before iterating",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-64097",
    "datePublished": "2026-07-19T15:40:03.599Z",
    "dateReserved": "2026-07-19T07:54:57.033Z",
    "dateUpdated": "2026-07-20T13:43:17.391Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-64097",
      "date": "2026-07-21",
      "epss": "0.00129",
      "percentile": "0.02944"
    },
    "microsoft_vex": {
      "current_release_date": "2026-07-21T01:02:50.000Z",
      "cve": "CVE-2026-64097",
      "id": "msrc_CVE-2026-64097",
      "initial_release_date": "2026-07-21T01:02:50.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "drm/amd/display: Validate GPIO pin LUT table size before iterating",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-64097.json",
      "version": "1"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-64097\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-07-19T16:17:50.727\",\"lastModified\":\"2026-07-20T15:17:08.800\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/amd/display: Validate GPIO pin LUT table size before iterating\\n\\n[Why\u0026How]\\nThe GPIO pin table parsers in get_gpio_i2c_info() and\\nbios_parser_get_gpio_pin_info() derive an element count from the VBIOS\\ntable_header.structuresize field, then iterate over gpio_pin[] entries.\\nHowever, GET_IMAGE() only validates that the table header itself fits\\nwithin the BIOS image. If the VBIOS reports a structuresize larger than\\nthe actual mapped data, the loop reads past the end of the BIOS image,\\ncausing an out-of-bounds read.\\n\\nFix this by calling bios_get_image() to validate that the full claimed\\nstructuresize is accessible within the BIOS image before entering the\\nloop in both functions.\\n\\n(cherry picked from commit ba5e95b43b773ae1bf1f66ee6b31eb774e65afe3)\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"ae79c310b1a6f97429a5784b65f125d9cc9c95b1\",\"lessThan\":\"9900f6954be779011e7c2cd42addd87baf028bc5\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ae79c310b1a6f97429a5784b65f125d9cc9c95b1\",\"lessThan\":\"fb30a3890d62fd50a95aef684faf64a307592e42\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ae79c310b1a6f97429a5784b65f125d9cc9c95b1\",\"lessThan\":\"67461e0c15335894cc5d3b84cda823bf8cbdc886\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ae79c310b1a6f97429a5784b65f125d9cc9c95b1\",\"lessThan\":\"7ca695b3122297b06a3ed605bbe1cd32c85d9f5a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ae79c310b1a6f97429a5784b65f125d9cc9c95b1\",\"lessThan\":\"f2a4827e980ba07de4391fa84d9c39a12726bdd7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ae79c310b1a6f97429a5784b65f125d9cc9c95b1\",\"lessThan\":\"86d2b20644b11d21fe52c596e6e922b4590a3e3f\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.15\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.15\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.175\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.142\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.92\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.34\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.0.11\",\"lessThanOrEqual\":\"7.0.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1\",\"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}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/67461e0c15335894cc5d3b84cda823bf8cbdc886\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7ca695b3122297b06a3ed605bbe1cd32c85d9f5a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/86d2b20644b11d21fe52c596e6e922b4590a3e3f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/9900f6954be779011e7c2cd42addd87baf028bc5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f2a4827e980ba07de4391fa84d9c39a12726bdd7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/fb30a3890d62fd50a95aef684faf64a307592e42\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-07-21T09:08:02+00:00",
      "cve": "CVE-2026-64097",
      "id": "CVE-2026-64097",
      "initial_release_date": "2026-07-19T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: drm/amd/display: Validate GPIO pin LUT table size before iterating",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64097.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…