CVE-2026-98645

CVE-2026-98645

published October 18, 2026

CVSS
—
EPSS
0%
Percentile
8.1
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00189 · 8.1th percentile
Published
2026-10-18T20:17Z
References (2)
EPSS history
Timeline
  • 20 OCT 03:34Z
    EPSS moved — → 0%
    epss
  • 18 OCT 15:20Z
    HID: winwing: fix use-after-free in force feedback teardown
    cvelistv5
  • 18 OCT 15:20Z
    HID: winwing: fix use-after-free in force feedback teardown
    cvelistv5