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

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

winwing_init_ff() passes the driver's private data, allocated with
devm_kzalloc() in winwing_probe(), as the effect context to
input_ff_create_memless(). The memoryless force-feedback core takes
ownership of that pointer and frees it with kfree() from
input_ff_destroy() (ml_ff_destroy()) 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 input_ff_destroy
Allocated by task N:
winwing_probe

Pass NULL as the memless context instead and fetch the driver data from
the input device in winwing_play_effect(): the HID core already stores
the hid_device as the input device's drvdata. The force-feedback core
then owns nothing that it must not free.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Kernel corruption leading to privilege escalation or denial of service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability originates from a use‑after‑free condition in the Linux kernel HID driver. When a device using the winwing driver is removed or the module is unloaded, the force‑feedback subsystem frees driver data that is still owned by the device framework, causing a double free and corrupting kernel memory. Such corruption can trigger kernel panics, potentially enabling arbitrary code execution with elevated privileges or causing a denial of service that impacts all users on the affected system.

Affected Systems

All distributions that ship the Linux kernel with the winwing HID driver enabled. The vulnerability arises at the kernel level and is not limited to a specific product version; it affects any system that uses this driver until the reported patch is applied.

Risk and Exploitability

The CVSS score and exploit probability are not provided; however, because the flaw occurs in privileged kernel code and involves a double free leading to memory corruption, the exploitation risk is considered high. No public exploits are listed in CISA’s KEV catalog, but the kernel nature of the bug means a local attacker could cause severe impact if the driver is bound to a device. The likely attack vector is local privilege escalation or denial of service via manipulation of HID devices or Module unloads. Without a patch, systems remain at high risk until the kernel snapshot containing the fix is deployed.

Generated by OpenCVE AI on October 18, 2026 at 19:08 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest kernel update that incorporates the winwing force‑feedback teardown fix.
  • If an update is not yet available, disable the winwing HID driver (`blacklist winwing`) or unload it (`rmmod winwing`) before powering down or suspending the system to avoid the double free scenario.
  • Disable force‑feedback functionality for devices that use winwing by applying device‑specific udev rules or vendor filters to prevent `input_ff_create_memless` from being instantiated.
  • Monitor system logs for KASAN or kernel panic messages indicating memory corruption to detect potential exploitation attempts.

Generated by OpenCVE AI on October 18, 2026 at 19:08 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-415
CWE-416

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: HID: winwing: fix use-after-free in force feedback teardown winwing_init_ff() passes the driver's private data, allocated with devm_kzalloc() in winwing_probe(), as the effect context to input_ff_create_memless(). The memoryless force-feedback core takes ownership of that pointer and frees it with kfree() from input_ff_destroy() (ml_ff_destroy()) 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 input_ff_destroy Allocated by task N: winwing_probe Pass NULL as the memless context instead and fetch the driver data from the input device in winwing_play_effect(): the HID core already stores the hid_device as the input device's drvdata. The force-feedback core then owns nothing that it must not free.
Title HID: winwing: fix use-after-free in force feedback teardown
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:20:16.676Z

Reserved: 2026-09-25T10:25:14.362Z

Link: CVE-2026-98645

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:17.757

Modified: 2026-10-18T16:17:17.757

Link: CVE-2026-98645

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T19:15:14Z

Weaknesses