KernelScan.io

HIGH Introduced in 6.2

sysfb FbSize Overflow

CVE-2026-89806

CVSS 8.4 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.5MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: drm/sysfb: ofdrm: Fix integer overflow in fb_size calculation The framebuffer size calculation `fb_size = linebytes * height` can overflow when both values are large (e.g., 46341 * 46341 > INT_MAX). Since linebytes and height are both int types, the multiplication is performed as int * int, which results in undefined behavior on overflow. Use check_mul_overflow() to detect and prevent this overflow, consistent with the approach used in simpledrm.c and corebootdrm.c.

02

Engine v0.6.0

Risk summary

A signed integer overflow in the ofdrm framebuffer driver's size calculation can lead to memory corruption when the device tree supplies large framebuffer dimensions. The bug is triggered during driver initialization from firmware-supplied device tree data, requiring root access to modify boot configuration or physical access to alter firmware. Systems with verified boot chains are protected against this attack vector.

Affecteddrivers/gpu/drm/sysfb/ofdrm.c (drm/sysfb)

Vulnerability analysis

The Open Firmware framebuffer driver reads display dimensions (line width and height) from the device tree during boot and multiplies them to compute the total framebuffer size. Because both values are stored as signed integers, their multiplication can silently overflow when the dimensions are large, producing an incorrect size that the driver then uses to set up the framebuffer — potentially causing out-of-bounds memory access or a kernel crash. The fix replaces the unchecked multiplication with a helper that detects overflow and aborts initialization with an error if it occurs. This vulnerability is only reachable through the device tree, which is supplied by firmware at boot time; an attacker would need either root-level access to modify the boot configuration or device tree overlays, or physical access to alter the firmware directly.

03

BranchIntroducedFixed inPatch commit
6.126.26.12.112711fe7949d37
6.186.26.18.51ded6ad826fe0
7.26.27.2.5d9daf9a6e7a6
mainline6.27.3-rc2c6f48e59ece0