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
5.154.95.15.21779521ed3cc9e
6.14.96.1.184c669c64ab71a
6.124.96.12.105c6cfda79f26c
6.184.96.18.46b28593a05afd
6.64.96.6.15377749685e55d
7.14.97.1.1088c8174d7290
mainline4.97.2dc76c3c8e8ad
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.1-rt4.96.1.189-cip61-rt32c669c64ab71a
cip/6.124.96.12.108-cip31c6cfda79f26c

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.108-cip31
cip/6.1Fixed in 6.1.187-cip60
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.268-cip77
cip/5.10-rtFixed in 5.10.268-cip77-rt34
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)