CVE-2026-98764 json
usb: gadget: f_fs: Fix NULL pointer dereference in FUNCTIONFS_ENDPOINT_DESC
published 24d ago modified 12d ago also EUVD-2026-103849
- 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 7%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_fs: Fix NULL pointer dereference in FUNCTIONFS_ENDPOINT_DESC
When user space sets up FunctionFS with only full-speed descriptors (e.g., flags = FUNCTIONFS_HAS_FS_DESC) and the gadget operates at a higher speed (such as USB_SPEED_HIGH or USB_SPEED_SUPER), config_ep_by_speed() detects that the function lacks descriptors for the current speed, logs a warning, and falls back to full-speed descriptors. The endpoint is then successfully enabled via usb_ep_enable(), and epfile->ep becomes valid.
However, when user space subsequently issues the FUNCTIONFS_ENDPOINT_DESC ioctl to query the endpoint descriptor, ffs_epfile_ioctl() selects the descriptor index solely based on gadget->speed:
switch (epfile->ffs->gadget->speed) { case USB_SPEED_SUPER: case USB_SPEED_SUPER_PLUS: desc_idx = 2; break; case USB_SPEED_HIGH: desc_idx = 1; break; default: desc_idx = 0; } desc = epfile->ep->descs[desc_idx]; memcpy(&desc1, desc, desc->bLength);
Because user space only supplied full-speed descriptors, epfile->ep->descs[1] is NULL. Dereferencing desc->bLength triggers an immediate kernel NULL pointer dereference panic.
Fix this by falling back through lower speed descriptors if the current speed descriptor was not supplied, matching the fallback logic in config_ep_by_speed() and historical f_fs behavior. If still missing, fall back to epfile->ep->ep->desc (the active descriptor), and return -EINVAL safely if no valid descriptor is found. In addition, mark desc as const to match struct usb_ep::desc and avoid discarding qualifiers.
Patch / fix
- Linux Linux 7.3
- linux Debian 13 6.12.113-1
- linux Debian 14 7.2.10-1
- linux-6.12 Debian 12 6.12.113-1~deb12u1
debian advisories DEBIAN-CVE-2026-98764
- linux Ubuntu 24.04 LTS 6.8.0-149.149
- linux Ubuntu 26.04 LTS 7.0.0-43.43
- linux-aws Ubuntu 24.04 LTS 6.8.0-1069.74
- linux-aws Ubuntu 26.04 LTS 7.0.0-1017.18
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1073.81
- linux-gcp Ubuntu 26.04 LTS 7.0.0-1017.19
- linux-gke Ubuntu 24.04 LTS 6.8.0-1068.77
- linux-gke Ubuntu 26.04 LTS 7.0.0-1010.11
ubuntu advisories UBUNTU-CVE-2026-98764
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-source Linux Micro 6.0 6.4.0-159998.55.1
- kernel-default Linux Micro 6.0 6.4.0-159998.55.1
- kernel-kvmsmall Linux Micro 6.0 6.4.0-159998.55.1
- kernel-default-base Linux Micro 6.0 6.4.0-159998.55.1.159998.21.42
- kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1
- kernel-syms SLE Module for Development Tools 15 SP7 6.4.0-150700.53.90.1
- kernel-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.53.90.1
- kernel-source SLE Module for Development Tools 15 SP7, SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1
suse advisories SUSE-SU-2026:24550-1SUSE-SU-2026:5091-1
- git.kernel.org/stable/c/c5f452e057df6ef89300523d13ad6833bfd199cd commit
- git.kernel.org/stable/c/e5b9d6bb2a8906a1188c9a90cc8d102de3f07cad commit
- git.kernel.org/stable/c/7ef0ad5f462fa95bc4c6647d097d7c0384245b9c commit
- git.kernel.org/stable/c/06ac8609d6d185ac18c1d6a6a8a9b99e398bd124 commit
- git.kernel.org/stable/c/9d8761b3c133f6c6a6d3486839dac60e2cf4bfe3 commit
- git.kernel.org/stable/c/7811d8e26c77f8eea79e22d0d14c67ec0658b348 commit
- git.kernel.org/stable/c/35ab269602e1f7c4c0fe6ea3477264bea77eced3 commit
- git.kernel.org/stable/c/9cd072788c76595529eb38f42bf94d23852f8534 commit
Is CVE-2026-98764 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-98764 updated cvss 4.4
kernel: usb: gadget: f_fs: Fix NULL pointer dereference in FUNCTIONFS_ENDPOINT_DESC
-
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 Red Hat OpenShift Container Platform 4 openshift/ose-rhel-coreos-8, openshift/ose-rhel-coreos-9not affected: vulnerable code not present
+1 more productsfewer
Red Hat OpenShift Container Platform 5 openshift/ose-rhel-coreos-9
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.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-11).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/c5f452e057df6ef89300523d13ad6833bfd199cd
- git.kernel.org /stable/c/e5b9d6bb2a8906a1188c9a90cc8d102de3f07cad
- git.kernel.org /stable/c/7ef0ad5f462fa95bc4c6647d097d7c0384245b9c
- git.kernel.org /stable/c/06ac8609d6d185ac18c1d6a6a8a9b99e398bd124
- git.kernel.org /stable/c/9d8761b3c133f6c6a6d3486839dac60e2cf4bfe3
- git.kernel.org /stable/c/7811d8e26c77f8eea79e22d0d14c67ec0658b348
- git.kernel.org /stable/c/35ab269602e1f7c4c0fe6ea3477264bea77eced3
- git.kernel.org /stable/c/9cd072788c76595529eb38f42bf94d23852f8534
Sources
- CVE List CVE-2026-98764
- NVD CVE-2026-98764
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.