CVE-2026-64594 json
usb: gadget: f_fs: initialize reset_work at allocation time
published 3mo ago modified 2mo ago also EUVD-2026-53781
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 5%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_fs: initialize reset_work at allocation time
ffs_fs_kill_sb() unconditionally calls cancel_work_sync() on ffs->reset_work when a functionfs instance is unmounted:
ffs_data_reset(ffs); cancel_work_sync(&ffs->reset_work);
However ffs->reset_work is only ever initialized via INIT_WORK() in ffs_func_set_alt() and ffs_func_disable(), and only on the FFS_DEACTIVATED path. That state is reached solely by ffs_data_closed() when the instance is mounted with the "no_disconnect" option, so for the common case (no "no_disconnect", or mounted and unmounted without ever being deactivated) reset_work is never initialized.
ffs_data_new() allocates the ffs_data with kzalloc_obj() and does not initialize reset_work, and ffs_data_reset()/ffs_data_clear() do not touch it either, so reset_work.func is left NULL. cancel_work_sync() on such a work then trips the WARN_ON(!work->func) guard in __flush_work():
WARNING: kernel/workqueue.c:4301 at __flush_work+0x330/0x360, CPU#3: umount Call trace: __flush_work cancel_work_sync ffs_fs_kill_sb [usb_f_fs] deactivate_locked_super deactivate_super cleanup_mnt __cleanup_mnt task_work_run exit_to_user_mode_loop el0_svc
On older kernels cancel_work_sync() on a zero-initialized work struct was a silent no-op, which hid the missing initialization.
Initialize reset_work once in ffs_data_new() so it is always valid for the lifetime of the ffs_data, and drop the now-redundant INIT_WORK() calls from the two deactivation paths.
Patch / fix
- Linux Linux 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, 7.1.4, 7.2
- linux Debian 12 6.1.180-1
- linux Debian 13 6.12.100-1
- linux Debian 14 7.1.4-1
- linux-6.12 Debian 12 6.12.100-1~deb12u1
debian advisories DEBIAN-CVE-2026-64594
- linux Ubuntu 22.04 LTS 5.15.0-198.208
- linux Ubuntu 24.04 LTS 6.8.0-147.147
- linux Ubuntu 26.04 LTS 7.0.0-31.31
- linux-aws Ubuntu 22.04 LTS 5.15.0-1117.124
- linux-aws Ubuntu 24.04 LTS 6.8.0-1067.70
- linux-aws Ubuntu 26.04 LTS 7.0.0-1012.12
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1118.128
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1071.79
ubuntu advisories UBUNTU-CVE-2026-64594
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-default SLES 16.0, SLE High Availability Extension 16.0, Linux Micro 6.2 +1 more 6.12.0-160000.39.1
- kernel-rt Linux Micro 6.2 6.12.0-160000.39.1
- kernel-64kb SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1
- kernel-source SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1
- kernel-default-base SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1.160000.2.26
- kernel-syms SLES 16.0, Linux Micro Extras 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1
- kernel-azure SLES for SAP applications 16.0, SLES 16.0 6.12.0-160000.39.1
- kernel-obs-qa SLES for SAP applications 16.0, SLES 16.0 6.12.0-160000.39.1
suse advisories SUSE-SU-2026:24197-1SUSE-SU-2026:24184-1SUSE-SU-2026:24235-1SUSE-SU-2026:24179-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.39.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.39.1
opensuse advisories openSUSE-SU-2026:22091-1openSUSE-SU-2026:11476-1
- git.kernel.org/stable/c/7fe895e0a9651518c4fc082487da770ff9c14c7f commit
- git.kernel.org/stable/c/0de6ebbabfbbc9c28350283dc97d8a519d5c6dd7 commit
- git.kernel.org/stable/c/cb19e54ebe9baf3c3243083ade65c937339ccb7b commit
- git.kernel.org/stable/c/d5631081be07f20e764d3cb5c98ac0a1004fba51 commit
- git.kernel.org/stable/c/c36393b0d14e1e9783888f821ffe29381b8f46dc commit
- git.kernel.org/stable/c/69faa3779250df14f51d5084f938a99809546e52 commit
- git.kernel.org/stable/c/ba1867999dbc4085e6d8c52ac5266005b8b2bf07 commit
- git.kernel.org/stable/c/3137b243c93982fe3460335e12f9247739766e10 commit
Is CVE-2026-64594 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-64594 updated
kernel: usb: gadget: f_fs: initialize reset_work at allocation time
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.17% chance of exploitation in the next 30 days, higher than 5% of all scored CVEs (FIRST EPSS, 2026-11-11).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/7fe895e0a9651518c4fc082487da770ff9c14c7f
- git.kernel.org /stable/c/0de6ebbabfbbc9c28350283dc97d8a519d5c6dd7
- git.kernel.org /stable/c/cb19e54ebe9baf3c3243083ade65c937339ccb7b
- git.kernel.org /stable/c/d5631081be07f20e764d3cb5c98ac0a1004fba51
- git.kernel.org /stable/c/c36393b0d14e1e9783888f821ffe29381b8f46dc
- git.kernel.org /stable/c/69faa3779250df14f51d5084f938a99809546e52
- git.kernel.org /stable/c/ba1867999dbc4085e6d8c52ac5266005b8b2bf07
- git.kernel.org /stable/c/3137b243c93982fe3460335e12f9247739766e10
Sources
- CVE List CVE-2026-64594
- NVD CVE-2026-64594
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.