KernelScan.io

HIGH Introduced in 4.6

input byd Disconnect UAF

CVE-2026-80572

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.0HIGH

01

In the Linux kernel, the following vulnerability has been resolved: Input: byd - synchronize timer deletion before freeing private data byd_disconnect() uses timer_delete() before freeing the driver's private data. This does not wait for a running byd_clear_touch() callback, which dereferences the private data and its psmouse pointer. A callback racing with disconnect can therefore access the private data after it has been freed. The timer can also still be re-armed by byd_process_byte() while the disconnect is in progress. Use timer_shutdown_sync() before freeing the private data: it waits for a running callback and turns any later re-arm attempt into a no-op.

02

Engine v0.6.0

Risk summary

A race condition in the BYD touchpad driver's disconnect path allows a timer callback to access freed private data. A local attacker who can trigger device disconnect while the timer is active could exploit this for kernel memory corruption, leading to privilege escalation or denial of service.

Affecteddrivers/input/mouse/byd.c (input)

Vulnerability analysis

The BYD touchpad driver's disconnect handler deletes a timer and immediately frees the driver's private data, but the deletion does not wait for a callback that may already be running. That callback dereferences the private data and its parent pointer, so a timer firing concurrently with device removal can access memory after it has been freed. The timer can also be re-armed by incoming touchpad data while disconnect is in progress, widening the race window. The fix replaces the deletion call with a synchronous shutdown that waits for any running callback to finish and prevents the timer from being re-armed afterward. The vulnerable code is reached through the PS/2 mouse driver when a BYD touchpad is present, requiring local access and the ability to trigger device removal or input activity.

03

BranchIntroducedFixed inPatch commit
6.64.66.6.15428d984a66b9e
7.14.67.1.102e509ef60ee4
6.14.66.1.18584b205297fa1
6.184.66.18.468dbfd8e32a13
mainline4.67.2c83e79c0842e
6.124.66.12.106ee944a706a18
cip/6.14.66.1.187-cip6084b205297fa1
cip/6.124.66.12.108-cip31ee944a706a18