CVE-2026-64594 usb: gadget: f_fs: initialize reset_work at allocation time

Not scored Published Updated

A missing initialization in the Linux kernel USB gadget driver causes a null pointer dereference during unmount, leading to a system crash.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-64594?

CVE-2026-64594 is a vulnerability in Linux, published on 6 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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.

Which versions are affected by CVE-2026-64594?

How do I fix CVE-2026-64594?

Apply the vendor's patch.

Is CVE-2026-64594 being exploited?

There is no known exploitation of CVE-2026-64594 in the wild and no public exploit code.

Sources

Also known as BELL-CVE-2026-64594, DEBIAN-CVE-2026-64594, GHSA-28fc-4vwx-pr32, UBUNTU-CVE-2026-64594.

Is CVE-2026-64594 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free