CVE-2026-98645: HID: winwing: fix use-after-free in force feedback teardown

Published Oct 18, 2026
·
Updated

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

HID: winwing: fix use-after-free in force feedback teardown

winwinginitff() passes the driver's private data, allocated with devmkzalloc() in winwingprobe(), as the effect context to inputffcreatememless(). The memoryless force-feedback core takes ownership of that pointer and frees it with kfree() from inputffdestroy() (mlffdestroy()) when the input device is destroyed.

Freeing a devm-managed allocation with kfree() is an invalid free, and the same object is then released again by devres when the HID device is torn down, a double free. As the allocation also embeds the LED class devices, their timers and work item live on freed memory and the slab gets corrupted. This triggers on unbind, rmmod, hot-unplug and on system suspend, where the firmware cache walks the now-corrupt devres list. KASAN reports:

BUG: KASAN: invalid-free in inputffdestroy Allocated by task N: winwingprobe

Pass NULL as the memless context instead and fetch the driver data from the input device in winwingplayeffect(): the HID core already stores the hiddevice as the input device's drvdata. The force-feedback core then owns nothing that it must not free.

Affected Software

1 affected component
Linux Linux kernel

Event History

Oct 18, 2026
CVE Published
via MITRE·03:20 PM
Data Sourced
via MITRE·03:20 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this issue?

Systems using the Linux kernel Winwing HID driver with force-feedback functionality are exposed. The failure occurs during device or driver teardown rather than during ordinary force-feedback use.

2

What events can trigger the memory corruption?

The issue can trigger when the device is unbound, the driver module is removed, the device is hot-unplugged, or the system enters suspend. During teardown, the force-feedback core frees driver-private memory that is also managed by devres, leading to a subsequent double free and corrupted slab memory.

3

What can be done if the fix cannot be deployed immediately?

Avoid teardown events for affected Winwing HID devices where possible: do not unbind the device, remove the driver module, hot-unplug the device, or suspend the system while it is attached. This reduces exposure to the affected teardown path but does not correct the underlying memory-management flaw.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203