CVE-2025-68822CWE-416

CVE-2025-68822

High · published January 13, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
3.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

Input: alps - fix use-after-free bugs caused by dev3_register_work

The dev3_register_work delayed work item is initialized within

alps_reconnect() and scheduled upon receipt of the first bare

PS/2 packet from an external PS/2 device connected to the ALPS

touchpad. During device detachment, the original implementation

calls flush_workqueue() in psmouse_disconnect() to ensure

completion of dev3_register_work. However, the flush_workqueue()

in psmouse_disconnect() only blocks and waits for work items that

were already queued to the workqueue prior to its invocation. Any

work items submitted after flush_workqueue() is called are not

included in the set of tasks that the flush operation awaits.

This means that after flush_workqueue() has finished executing,

the dev3_register_work could still be scheduled. Although the

psmouse state is set to PSMOUSE_CMD_MODE in psmouse_disconnect(),

the scheduling of dev3_register_work remains unaffected.

The race condition can occur as follows:

CPU 0 (cleanup path) | CPU 1 (delayed work)

psmouse_disconnect() |

psmouse_set_state() |

flush_workqueue() | alps_report_bare_ps2_packet()

alps_disconnect() | psmouse_queue_work()

kfree(priv); // FREE | alps_register_bare_ps2_mouse()

| priv = container_of(work...); // USE

| priv->dev3 // USE

Add disable_delayed_work_sync() in alps_disconnect() to ensure

that dev3_register_work is properly canceled and prevented from

executing after the alps_data structure has been deallocated.

This bug is identified by static analysis.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00150 · 3.8th percentile
Weakness
CWE-416 · Use After Free
Published
2026-01-13T21:16Z
References (4)
EPSS history
Timeline
  • 13 JAN 15:29Z
    Input: alps - fix use-after-free bugs caused by dev3_register_work
    cvelistv5