Input: alps - fix use-after-free bugs caused by dev3_register_work
CVE-2025-68822 · published 13 Jan 2026
How serious is it
- Severity: high, CVSS score 7.8 out of 10.
- No exploit prediction (EPSS) score yet.
- Not on the CISA list of exploited vulnerabilities.
- No public exploit in Exploit-DB.
Is your app affected by CVE-2025-68822?
Paste this prompt into Claude Code, Cursor or any AI coding tool: it runs a free Shippable scan of your project and fixes what it finds. Built with Lovable, Bolt or v0? Scan your live app. Or upload your package file.
Who is affected
- Linux Linux: 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 to < b9d8cfd6d77f5072a4df10646810d128220457fb, 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 to < ed8c61b89be0c45f029228b2913d5cf7b5cda1a7, 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 to < a9c115e017b2c633d25bdfe6709dda6fc36f08c2, 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 to < bf40644ef8c8a288742fa45580897ed0e0289474
- Linux Linux: 4.0
How to check
- Find out whether you run the affected product and which version, then compare it with the versions above.
How to fix
Copies a prompt for Claude Code, Cursor or Codex that asks it to check whether you run this product.
- Apply the vendor's update or mitigation from the references below. If there is none yet, limit exposure of the affected service until there is.
- If a vulnerable version was live, check your logs and rotate the secrets that server could read.
The advisory
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.
Check your whole app
Dependencies are only half of it. Free and read-only: before you push, run npx shippable-dev scan localhost:3000 in your project folder, no account needed. For your live app, you prove it's yours with a one-line tag first.
References
- git.kernel.org/stable/c/b9d8cfd6d77f5072a4df10646810d128220457fb
- git.kernel.org/stable/c/ed8c61b89be0c45f029228b2913d5cf7b5cda1a7
- git.kernel.org/stable/c/a9c115e017b2c633d25bdfe6709dda6fc36f08c2
- git.kernel.org/stable/c/bf40644ef8c8a288742fa45580897ed0e0289474
Merged from CVE List. Last updated 25 Oct 2026. All vulnerabilities · RSS · JSON