KernelScan.io

HIGH Introduced in 4.9

rmi4 F54 ReportSize Overflow

CVE-2026-80570

CVSS 7.8 / 10.0 NVD

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

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: Input: synaptics-rmi4 - zero report size on F54 work error In rmi_f54_work(), if an error occurs during report request or command verification, the code jumped directly to the 'error' label, bypassing the 'abort' label where f54->report_size was normally zeroed out. This left f54->report_size containing its previous successful payload size. If a user then altered the V4L2 format to a smaller size, and a subsequent run failed, rmi_f54_buffer_queue() would copy the stale, larger payload size into the shrunken V4L2 buffer, causing a heap buffer overflow. Fix this by merging the 'abort' and 'error' labels into a single 'out' exit path, and ensuring that f54->report_size is always set to 0 on failure by checking for error and zeroing the local report_size first.

02

Engine v0.6.0

Risk summary

A local user with access to the RMI4 F54 diagnostics V4L2 device can trigger a heap buffer overflow by manipulating the V4L2 format size and inducing a report generation error. This can lead to arbitrary kernel memory corruption, potentially allowing privilege escalation or a system crash.

Affecteddrivers/input/rmi4/rmi_f54.c (input/rmi4)

Vulnerability analysis

In the RMI4 F54 diagnostics driver, when a report generation or verification step fails, the cleanup that zeroes the stored report size is skipped. This leaves a stale, larger payload size from a previous successful run. If a user then shrinks the V4L2 buffer format and a later run fails, the buffer queue handler copies data using the stale larger size into the now-smaller buffer, causing a heap buffer overflow. The fix ensures the stored report size is always zeroed when any failure occurs. This vulnerability is reachable locally by an unprivileged user interacting with the V4L2 device node for the RMI4 touchpad diagnostics interface, requiring the specific hardware and driver to be present.

03

BranchIntroducedFixed inPatch commit
5.104.95.10.26662079c17ec07
6.64.96.6.15377749685e55d
5.154.95.15.21779521ed3cc9e
6.184.96.18.46b28593a05afd
mainline4.97.2dc76c3c8e8ad
7.14.97.1.1088c8174d7290
6.14.96.1.184c669c64ab71a
6.124.96.12.105c6cfda79f26c
cip/5.104.95.10.268-cip7762079c17ec07
cip/5.10-rt4.95.10.268-cip77-rt3462079c17ec07
cip/6.14.96.1.187-cip60c669c64ab71a
cip/6.124.96.12.108-cip31c6cfda79f26c