CVE-2026-90044

CVE-2026-90044

High · published September 16, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
6.1
In the wild
Unconfirmed
What it is

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

usb: gadget: f_fs: Fix Use-After-Free in AIO error path

In ffs_epfile_write_iter() and ffs_epfile_read_iter(), when ffs_epfile_io()

fails with an error other than -EIOCBQUEUED, the io_data structure (`p`) is

freed. However, for AIO operations, the kiocb cancel function was already

armed and kiocb->private was set to `p`.

If a concurrent cancel operation (such as sys_io_cancel()) executes after

ffs_epfile_io() fails but before the function frees `p`, a Use-After-Free

can occur when the cancellation handler accesses the freed pointer.

To securely fix this race condition, we must properly un-arm the

cancellation. Invoking `kiocb->ki_complete()` does exactly this by

acquiring `ctx->ctx_lock` and safely removing the kiocb from the active

sequence. In doing so, it ensures that a parallel io_cancel can no longer

discover the kiocb, effectively closing the race window.

We then return -EIOCBQUEUED to notify the VFS layer that the kiocb has been

consumed and it should avoid attempting to complete the request again or

triggering subsequent completion handlers.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00170 · 6.1th percentile
Published
2026-09-16T15:17Z
References (5)
EPSS history
Timeline
  • 18 SEP 04:02Z
    EPSS moved — → 0%
    epss
  • 16 SEP 10:33Z
    usb: gadget: f_fs: Fix Use-After-Free in AIO error path
    cvelistv5