Input: lkkbd - disable pending work before freeing device
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.64, 6.18.3
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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().
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 8cf889d45bbc8477206dda78c8f757ea8ff68213; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 3a7cd1397c209076c371d53bf39a55c138f62342; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in cffc4e29b1e2d44ab094cf142d7c461ff09b9104; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in e58c88f0cb2d8ed89de78f6f17409d29cfab6c5c
- Linux Linux
2.6.12
- KernelLinux
From 2.6.12 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.64; From 6.13.0 · fixed in 6.18.3