Skip to content
OpenAdvisories
Unscored CVE-2026-63895 EUVD-2026-45668GHSA-hqp4-gw43-6pcc

usb: gadget: f_fs: copy only received bytes on short ep0 read

Published Jul 19, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.4 Package: linux-aws-5.8 Package: linux-aws-6.14 Package: linux-aws-6.17 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.14 Package: linux-azure-6.17 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-7.0 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.15 Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.14 Package: linux-azure-fde-6.17 Package: linux-azure-fde-6.2 Package: linux-azure-fde-6.8 Package: linux-azure-fde-7.0 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-azure-nvidia-6.14 Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.14 Package: linux-gcp-6.17 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-7.0 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.14 Package: linux-hwe-6.17 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-7.0 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-5.4 Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-lts-xenial Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.17 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-7.0 Package: linux-nvidia-bos Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.14 Package: linux-oem-6.17 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oem-7.0 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.14 Package: linux-oracle-6.17 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-oracle-7.0 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.14 Package: linux-realtime-6.17 Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.17 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-riscv-7.0 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

usb: gadget: f_fs: copy only received bytes on short ep0 read

ffs_ep0_read() allocates its control-OUT data buffer with
kmalloc() (not kzalloc) at the Length value from the Setup
packet, then copies that full len to userspace regardless of
how many bytes were actually received:

data = kmalloc(len, GFP_KERNEL);
...
ret = __ffs_ep0_queue_wait(ffs, data, len);
if ((ret > 0) && (copy_to_user(buf, data, len)))
ret = -EFAULT;

__ffs_ep0_queue_wait() returns req->actual, which on a short
control OUT transfer is strictly less than len. The
copy_to_user() call still copies len bytes, so on a short OUT
the last (len - ret) bytes of the kmalloc() buffer --
uninitialised slab residue -- are delivered to the FunctionFS
daemon.

Short ep0 OUT completions are specified USB control-transfer
behavior and are produced by in-tree UDCs:

* dwc2 continues on req->actual < req->length for ep0 DATA OUT
(short-not-ok is the only ep0-OUT stall path).
* aspeed_udc ends ep0 OUT on rx_len < ep->ep.maxpacket.
* renesas_usbf logs "ep0 short packet" and completes the
request.
* dwc3 stalls on short IN but not on short OUT.

A short ep0 OUT is therefore not evidence of a broken UDC; it is
a normal condition f_fs has to cope with. The sibling gadgetfs
implementation in drivers/usb/gadget/legacy/inode.c already does
this correctly via min(len, dev->req->actual) before
copy_to_user(). This patch brings f_fs.c to the same safe
pattern rather than trimming at a defensive layer.

The bug is reached from the FunctionFS device node, which in
real deployments is owned by the privileged gadget daemon
(adbd, UMS, composite gadget services, etc.); it is not
reachable from unprivileged userspace. Linux host stacks
normally reject short-wLength control OUTs before they reach
the gadget, so reproducing this required a build that
bypasses that host-side check. With the bypass in place, a
1-byte payload on a 64-byte Setup produces 63 bytes of
non-canary slab residue in the daemon's read buffer.

Fix by copying only ret (actually received) bytes to
userspace.

Affected products

VendorProductAffectedFixed
Linux Linux 2.6.35 5.15.210

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 7.0.12-1 —
Debian 13 linux 6.12.94-1 —
Debian 12 linux 6.1.176-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 24.04 LTS linux-bluefield 6.8.0-1032.37 —
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1101.103 —
Ubuntu 26.04 LTS linux 7.0.0-28.28 —
Ubuntu 26.04 LTS linux-aws +2 7.0.0-1009.9 USN-8618-1, USN-8603-1
Ubuntu 26.04 LTS linux-gcp +1 7.0.0-1008.8 USN-8593-1
Ubuntu 26.04 LTS linux-gke 7.0.0-1003.4 —
Ubuntu 26.04 LTS linux-ibm +1 7.0.0-1010.10 USN-8603-1, USN-8593-1
Ubuntu 26.04 LTS linux-nvidia 7.0.0-1016.16 USN-8663-1
Ubuntu 26.04 LTS linux-nvidia-bos 7.0.0-2016.16 USN-8664-1
Ubuntu 26.04 LTS linux-raspi 7.0.0-1015.15 USN-8618-1
Ubuntu 26.04 LTS linux-riscv +1 7.0.0-28.28.1 —
Ubuntu 24.04 LTS linux 6.8.0-146.146 USN-8903-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1066.69 USN-8903-1
Ubuntu 24.04 LTS linux-azure-7.0 7.0.0-1014.14~24.04.1 USN-8728-2
Ubuntu 24.04 LTS linux-azure-fde 6.8.0-1068.75 USN-8904-1
Ubuntu 24.04 LTS linux-azure-fde-7.0 7.0.0-1013.13~24.04.1 —
Ubuntu 24.04 LTS linux-gcp +1 6.8.0-1070.78 USN-8905-2, USN-8904-1
Ubuntu 24.04 LTS linux-gcp-7.0 +1 7.0.0-1011.11~24.04.1 USN-8728-3, USN-8728-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1065.73 USN-8903-2
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1051.55 USN-8903-2
Ubuntu 24.04 LTS linux-hwe-7.0 7.0.0-28.28~24.04.1 —
Ubuntu 24.04 LTS linux-ibm 6.8.0-1066.67 USN-8903-2
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-146.146.1 USN-8903-2
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1064.67 USN-8903-2
Ubuntu 24.04 LTS linux-nvidia-7.0 7.0.0-1016.16~24.04.1 USN-8663-1
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1064.67.1 USN-8903-2
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1038.42 USN-9002-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1063.66 USN-8903-2
Ubuntu 24.04 LTS linux-raspi 6.8.0-1068.72 USN-9025-1
Ubuntu 24.04 LTS linux-riscv +29 No fix yet —
Ubuntu 24.04 LTS linux-riscv-7.0 7.0.0-28.28.1~24.04.3 —
Ubuntu 24.04 LTS linux-vmware 6.8.0-1008.8 —
Ubuntu 22.04 LTS linux 5.15.0-198.208 USN-8875-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1117.124 USN-8875-1
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1066.69~22.04.1 USN-8903-1
Ubuntu 22.04 LTS linux-azure 5.15.0-1123.132 USN-8875-1
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1122.131 —
Ubuntu 22.04 LTS linux-azure-fde-6.8 6.8.0-1068.75~22.04.1 USN-8904-1
Ubuntu 22.04 LTS linux-gcp 5.15.0-1118.128 USN-8877-1
Ubuntu 22.04 LTS linux-gcp-6.8 +1 6.8.0-1070.78~22.04.1 USN-8905-1, USN-8904-1
Ubuntu 22.04 LTS linux-gke 5.15.0-1113.119 USN-8875-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1100.108 USN-8875-1
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-149.149~22.04.1 USN-9066-1
Ubuntu 22.04 LTS linux-ibm 5.15.0-1111.115 USN-8875-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1066.67~22.04.1 USN-8906-1
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1112.118 USN-8875-1
Ubuntu 22.04 LTS linux-kvm 5.15.0-1109.114 USN-8875-1
Ubuntu 22.04 LTS linux-lowlatency 5.15.0-195.205 USN-8875-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-146.146.1~22.04.1 USN-8903-2
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1112.113 USN-8875-2
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1064.67~22.04.1 USN-8903-2
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1070.72 USN-8963-1
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1059.59 USN-8963-1
Ubuntu 22.04 LTS linux-oracle 5.15.0-1114.120 USN-8875-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1067.71~22.04.1 USN-9025-1
Ubuntu 22.04 LTS linux-raspi 5.15.0-1113.116 USN-9029-1
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-146.146~22.04.1 —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1080.84 USN-8875-1
Show 18 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2056.58 USN-9025-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1061.62 USN-8903-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 +1 No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1109.111 USN-8875-1
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1116.125 USN-8875-1
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1061.62~22.04.1 USN-8903-1
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-updates 24.04 LTS linux-aws-fips 6.8.0-1066.69+fips1 USN-8903-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-azure-fips 6.8.0-1069.77+fips1 USN-8904-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-146.146+fips1 USN-8903-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-gcp-fips 6.8.0-1070.78+fips1 USN-8905-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1117.124+fips1 USN-8875-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1123.132+fips1 USN-8875-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-198.208+fips1 USN-8875-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1118.128+fips1 USN-8877-1
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 20.04 LTS linux +10 No fix yet —
Ubuntu Pro 20.04 LTS linux-aws-5.15 5.15.0-1117.124~20.04.1 USN-8875-1
Ubuntu Pro 20.04 LTS linux-azure-5.15 5.15.0-1123.132~20.04.1 USN-8875-1
Ubuntu Pro 20.04 LTS linux-azure-fde-5.15 5.15.0-1122.131~20.04.1 USN-8875-1
Ubuntu Pro 20.04 LTS linux-gcp-5.15 5.15.0-1118.128~20.04.1 USN-8878-1
Ubuntu Pro 20.04 LTS linux-hwe-5.15 5.15.0-198.208~20.04.1 USN-8875-1
Ubuntu Pro 20.04 LTS linux-ibm-5.15 +1 5.15.0-1111.115~20.04.1 USN-8875-1
Ubuntu Pro 20.04 LTS linux-intel-iotg-5.15 5.15.0-1112.118~20.04.1 USN-8875-1
Ubuntu Pro 20.04 LTS linux-lowlatency-hwe-5.15 5.15.0-195.205~20.04.1 USN-8875-1
Ubuntu Pro 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1070.72~20.04.1 USN-8963-1
Ubuntu Pro 20.04 LTS linux-oracle-5.15 5.15.0-1114.120~20.04.1 USN-8879-1
Ubuntu Pro 18.04 LTS linux +12 No fix yet —
Ubuntu Pro 16.04 LTS linux +7 No fix yet —
Ubuntu Pro 14.04 LTS linux +3 No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP7 kernel-64kb +7 6.4.0-150700.53.78.1 SUSE-SU-2026:3790-1
SLES 15 SP7 kernel-default-base 6.4.0-150700.53.78.1.150700.17.43.2 SUSE-SU-2026:3790-1
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 kernel-64kb +8 6.12.0-160000.37.1 SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLES for SAP 16.0 kernel-default-base 6.12.0-160000.37.1.160000.2.19 SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLES 16.0 kernel-64kb +8 6.12.0-160000.37.1 SUSE-SU-2026:23237-1, SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLES 16.0 kernel-default-base 6.12.0-160000.37.1.160000.2.19 SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLE Micro 6.2 kernel-default-base 6.12.0-160000.37.1.160000.2.19 SUSE-SU-2026:23068-1
SLE Micro 6.2 kernel-rt +5 6.12.0-160000.37.1 SUSE-SU-2026:23068-1, SUSE-SU-2026:23066-1
SLE Micro 6.1 kernel-rt +4 6.4.0-51.1 SUSE-SU-2026:23194-1, SUSE-SU-2026:23193-1
SLE Micro 6.0 kernel-rt +4 6.4.0-51.1 SUSE-SU-2026:23244-1, SUSE-SU-2026:23241-1
SLE Live Patching 15 SP7 kernel-default 6.4.0-150700.53.78.1 SUSE-SU-2026:3790-1
SLE Live Patching 15 SP7 kernel-livepatch-SLE15-SP7-RT_Update_19 1-150700.1.5.1 SUSE-SU-2026:3810-1
SLE Live Patching 15 SP7 kernel-livepatch-SLE15-SP7_Update_20 1-150700.15.3.2 SUSE-SU-2026:3790-1
SUSE Real Time Module 15 SP7 kernel-rt +2 6.4.0-150700.7.72.1 SUSE-SU-2026:3810-1
ReleasePackageFixed inAdvisory
openSUSE Leap 16.0 kernel-default-base 6.12.0-160000.37.1.160000.2.19 openSUSE-SU-2026:21555-1
openSUSE Leap 16.0 kernel-rt +11 6.12.0-160000.37.1 openSUSE-SU-2026:21555-1

Advisories 37

References