CVE-2026-53138

drm/amd/display: Bound VBIOS record-chain walk loops

HIGH
7.1
CVSS Score
Published: June 25, 2026 at 08:38 AM UTC
Updated: July 7, 2026 at 05:09 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.1
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Bound VBIOS record-chain walk loops [Why & How] All record-chain walk loops in bios_parser.c and bios_parser2.c use for(;;) and only terminate on a 0xFF record_type sentinel or zero record_size. A malformed VBIOS image missing the terminator record causes unbounded iteration at probe time, potentially hundreds of thousands of iterations with record_size=1. In the final iterations near the BIOS image boundary, struct casts beyond the 2-byte header validated by GET_IMAGE can also read out of bounds. Cap all 14 record-chain walk loops to BIOS_MAX_NUM_RECORD (256) iterations. The atombios.h defines up to 22 distinct record types and atomfirmware.h has 13. Assuming an average of less than 10 records per type (which is reasonable since most are connector- based) 256 is a generous upper bound. (cherry picked from commit 95700a3d660287ed657d6892f7be9ffc0e294a93)

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.15 ≤ v < 5.10.2604.15 ≤ v < 5.15.2114.15 ≤ v < 6.1.1774.15 ≤ v < 6.12.944.15 ≤ v < 6.18.364.15 ≤ v < 6.6.1444.15 ≤ v < 7.0.134.15 ≤ v < 7.15.11 ≤ v < 5.15.2115.16 ≤ v < 6.1.1776.13 ≤ v < 6.18.366.19 ≤ v < 7.0.136.2 ≤ v < 6.6.1446.7 ≤ v < 6.12.944562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c7.1 rc17.1 rc27.1 rc37.1 rc47.1 rc57.1 rc6
Vendor states this is fixed in 04e271a952b8863bbafc99bd51aca4c32bff0e0d (fixed)
Vendor states this is fixed in 0e56f460bddb397fa9a8e6faf7ae7eaa86953eb1 (fixed)
Vendor states this is fixed in 2645e3caf7e013189da9c6ff621d006cca5a538b (fixed)
Vendor states this is fixed in 499c6b43a79dd684bddbd18fe8b2235aa2764db4 (fixed)
Vendor states this is fixed in 6173cfea2f916e01c4f98e29cd654384a05e32a3 (fixed)
Vendor states this is fixed in 6723188c42ca3b34a9fce634d7a0ecc9ccd5cd56 (fixed)
Vendor states this is fixed in e94f5323c41f32a74160378c3b19850d1f203ad5 (fixed)
Vendor states this is fixed in ff287df16a1a58aca78b08d1f3ee09fc44da0351 (fixed)
Vendor states this is fixed in 4.15 (unaffected)
Vendor states this is fixed in 5.10.260 (unaffected)
Vendor states this is fixed in 5.15.211 (unaffected)
Vendor states this is fixed in 6.1.177 (unaffected)
Vendor states this is fixed in 6.12.94 (unaffected)
Vendor states this is fixed in 6.18.36 (unaffected)
Vendor states this is fixed in 6.6.144 (unaffected)
Vendor states this is fixed in 7.0.13 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-125

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card