Description
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)
Published: 2026-07-19
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s AMD display driver parses a VBIOS table header to obtain a documented structure size, which drives a loop iterating over GPIO pin entries. The size field is not checked against the actual bounds of the mapped BIOS image; if the VBIOS reports a larger structure size than the data present, the loop reads past the image’s end. This CWE‑125 out‑of‑bounds read can expose kernel memory contents to an attacker, potentially leaking sensitive information and compromising confidentiality.

Affected Systems

All Linux kernels built with the AMD display driver before the inclusion of commit ba5e95b43b773ae1bf1f66ee6b31eb774e65afe3 are affected. Any system that loads a VBIOS image reporting an inflated structure size is vulnerable, regardless of distribution or kernel release. The fix is applied to all future kernel versions that incorporate the referenced commit.

Risk and Exploitability

The CVSS score of 7.8 denotes high severity, while the EPSS score of less than 1% indicates a low probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves supplying a custom or tampered VBIOS image with a claimed structure size larger than the actual data, which typically requires physical or firmware‑level access to the system. Once the kernel processes the malformed table, it performs an out‑of‑bounds read that could leak memory contents to the attacker.

Generated by OpenCVE AI on July 30, 2026 at 20:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes commit ba5e95b43b773ae1bf1f66ee6b31eb774e65afe3.
  • Verify that the BIOS firmware is signed and authentic; refrain from installing unsigned or tampered firmware updates that could provide a malformed VBIOS image.
  • Monitor vendor advisories for BIOS firmware updates addressing VBIOS table parsing and apply those updates promptly or enable Secure Boot to guard against tampered firmware.

Generated by OpenCVE AI on July 30, 2026 at 20:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Mon, 20 Jul 2026 12:15:00 +0000


Sun, 19 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
Description 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)
Title drm/amd/display: Validate GPIO pin LUT table size before iterating
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-05T12:39:11.518Z

Reserved: 2026-07-19T07:54:57.033Z

Link: CVE-2026-64097

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity :

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-64097 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T20:45:17Z

Weaknesses