Description
In the Linux kernel, the following vulnerability has been resolved:
Input: lkkbd - disable pending work before freeing device
lkkbd_interrupt() schedules lk->tq via schedule_work(), and the work handler lkkbd_reinit() dereferences the lkkbd structure and its serio/input_dev fields.
lkkbd_disconnect() and error paths in lkkbd_connect() free the lkkbd structure without preventing the reinit work from being queued again until serio_close() returns. This can allow the work handler to run after the structure has been freed, leading to a potential use-after-free.
Use disable_work_sync() instead of cancel_work_sync() to ensure the reinit work cannot be re-queued, and call it both in lkkbd_disconnect() and in lkkbd_connect() error paths after serio_open().
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2, < fb76f871d6155c52ccc0401bbde77dd20b83d0c1; >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2, < 8cf889d45bbc8477206dda78c8f757ea8ff68213; >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2, < 3a7cd1397c209076c371d53bf39a55c138f62342; >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2, < cffc4e29b1e2d44ab094cf142d7c461ff09b9104; >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2, < e58c88f0cb2d8ed89de78f6f17409d29cfab6c5c |
| Linux | Linux | 2.6.12 |
References
- https://git.kernel.org/stable/c/3a7cd1397c209076c371d53bf39a55c138f62342Patch
- https://git.kernel.org/stable/c/8cf889d45bbc8477206dda78c8f757ea8ff68213
- https://git.kernel.org/stable/c/cffc4e29b1e2d44ab094cf142d7c461ff09b9104Patch
- https://git.kernel.org/stable/c/e58c88f0cb2d8ed89de78f6f17409d29cfab6c5cPatch
- https://git.kernel.org/stable/c/fb76f871d6155c52ccc0401bbde77dd20b83d0c1
Timeline
- Published
- Jan 13, 2026
- Last modified
- Oct 30, 2026
- NVD status
- Modified