Skip to content
Fencer Intel
no cvss —

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

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 Fencer

Vendor 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 kernel
    not 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

Sources

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.