Vulnerability · Published Jul 19, 2026 · Assigned by Linux

CVE-2026-63895usb: gadget: f_fs: copy only received bytes on short ep0 read

Unrated

In plain English

A security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 18% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS )–Not rated
Exploit odds (30 days)0.3%top 82.0% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official 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 packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12linux6.1.176-1DEBIAN-CVE-2026-63895
Debian:13linux6.12.94-1DEBIAN-CVE-2026-63895
Debian:14linux7.0.12-1DEBIAN-CVE-2026-63895
Ubuntu:22.04:LTSlinux5.15.0-198.208UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux6.8.0-146.146UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux7.0.0-28.28UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-aws5.15.0-1117.124UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-aws6.8.0-1066.69UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-aws7.0.0-1009.9UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1066.69~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure5.15.0-1123.132UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure6.8.0-1070.78UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-azure7.0.0-1010.10UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1070.78~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-7.07.0.0-1014.14~24.04.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-fde5.15.0-1122.131UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-fde6.8.0-1068.75UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-azure-fde7.0.0-1009.9UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-azure-fde-6.86.8.0-1068.75~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-fde-7.07.0.0-1013.13~24.04.1UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-nvidiano fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-gcp5.15.0-1118.128UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-gcp6.8.0-1070.78UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-gcp7.0.0-1008.8UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1070.78~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-gcp-7.07.0.0-1011.11~24.04.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-gke5.15.0-1113.119UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-gke6.8.0-1065.73UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-gke7.0.0-1003.4UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-gkeop5.15.0-1100.108UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1051.55UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-hwe-6.8no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-hwe-7.07.0.0-28.28~24.04.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-ibm5.15.0-1111.115UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-ibm6.8.0-1066.67UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-ibm7.0.0-1010.10UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1066.67~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-intel-iotg5.15.0-1112.118UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-kvm5.15.0-1109.114UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-lowlatency5.15.0-195.205UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-146.146.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-146.146.1~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-nvidia5.15.0-1112.113UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1064.67UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-nvidia7.0.0-1016.16UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1064.67~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-nvidia-7.07.0.0-1016.16~24.04.1UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-nvidia-bos7.0.0-2016.16UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1064.67.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-nvidia-tegra5.15.0-1070.72UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-nvidia-tegra6.8.0-1038.42UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-nvidia-tegra-igx5.15.0-1059.59UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-oem-7.07.0.0-1009.9UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-oracle5.15.0-1114.120UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oracle6.8.0-1063.66UBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-oracle7.0.0-1008.8UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-oracle-6.8no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-oracle-7.07.0.0-1011.11~24.04.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-raspi7.0.0-1015.15UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-realtime7.0.0-28.28.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-63895
Ubuntu:26.04:LTSlinux-riscv7.0.0-28.28.1UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-riscv-6.86.8.0-146.146~22.04.1UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-riscv-7.07.0.0-28.28.1~24.04.3UBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-vmware6.8.0-1008.8UBUNTU-CVE-2026-63895
Ubuntu:24.04:LTSlinux-xilinxno fix listedUBUNTU-CVE-2026-63895
Ubuntu:22.04:LTSlinux-xilinx-zynqmp5.15.0-1080.84UBUNTU-CVE-2026-63895

Affected products (as reported)

VendorProductVersions
Linux Linux ddf8abd2599491cbad959c700b90ba72a5dce8d0 – before 90ccf5fb63243fae1b4b3200f3310500500ecf2eddf8abd2599491cbad959c700b90ba72a5dce8d0 – before af32dbb2ca0b3d09271ab718d13857a457fa16f2ddf8abd2599491cbad959c700b90ba72a5dce8d0 – before e835bf9a055f71874065a40780ca5560b7df8b33ddf8abd2599491cbad959c700b90ba72a5dce8d0 – before 88874a19b2b093bfaaa1c0090fa536c44da8c08bddf8abd2599491cbad959c700b90ba72a5dce8d0 – before 607730a414773a7cbe3037a64a6c64e72689ff5eddf8abd2599491cbad959c700b90ba72a5dce8d0 – before 23c1f7deb9dd8447ecde749850676302aa1e2bd3ddf8abd2599491cbad959c700b90ba72a5dce8d0 – before 4e036c10e7f4df5d951c69cc3697bc8e209c6d02
Linux Linux 2.6.35

References