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()… (CVE-2026-63895)
A vulnerability in the Linux kernel's USB gadget function (f_fs) was identified where the function ffs_ep0_read() copies more bytes to userspace than were actually received on a short control OUT transfer. This results in uninitialized kernel memory (slab residue) being leaked to the privileged FunctionFS daemon. The issue arises because the code allocates a buffer based on the expected length but copies the full length regardless of the actual received byte count. The vulnerability is not reachable by unprivileged userspace and requires bypassing normal host-side USB checks. The fix involves copying only the actual received bytes to userspace.
AI Analysis
Technical Summary
The Linux kernel's usb gadget function f_fs had a flaw in ffs_ep0_read() where it allocated a buffer sized by the Setup packet length and copied that full length to userspace even if fewer bytes were received on a short ep0 OUT transfer. This caused uninitialized slab memory to leak to the FunctionFS daemon, which runs with privileges. The vulnerability is triggered by short control OUT transfers, which are normal USB behavior but typically blocked by host stacks. The patch corrects this by copying only the actual received bytes, aligning with the behavior of the sibling gadgetfs implementation. The flaw is limited to privileged daemon access and requires a host-side check bypass to exploit.
Potential Impact
The vulnerability can leak uninitialized kernel memory contents to the privileged FunctionFS daemon via short USB control OUT transfers. This could expose sensitive kernel memory data to the daemon process. However, it is not exploitable by unprivileged userspace and requires a host stack bypass to trigger. No direct remote code execution or privilege escalation is described.
Mitigation Recommendations
A fix is available in the Linux kernel that changes the copy_to_user() call to copy only the actual received bytes rather than the full requested length. Users should apply the official kernel patch that implements this correction. Since the issue affects privileged FunctionFS daemons, restricting access to these daemons and ensuring host USB stacks enforce short packet checks can reduce risk until patched.
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()… (CVE-2026-63895)
Description
A vulnerability in the Linux kernel's USB gadget function (f_fs) was identified where the function ffs_ep0_read() copies more bytes to userspace than were actually received on a short control OUT transfer. This results in uninitialized kernel memory (slab residue) being leaked to the privileged FunctionFS daemon. The issue arises because the code allocates a buffer based on the expected length but copies the full length regardless of the actual received byte count. The vulnerability is not reachable by unprivileged userspace and requires bypassing normal host-side USB checks. The fix involves copying only the actual received bytes to userspace.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Linux kernel's usb gadget function f_fs had a flaw in ffs_ep0_read() where it allocated a buffer sized by the Setup packet length and copied that full length to userspace even if fewer bytes were received on a short ep0 OUT transfer. This caused uninitialized slab memory to leak to the FunctionFS daemon, which runs with privileges. The vulnerability is triggered by short control OUT transfers, which are normal USB behavior but typically blocked by host stacks. The patch corrects this by copying only the actual received bytes, aligning with the behavior of the sibling gadgetfs implementation. The flaw is limited to privileged daemon access and requires a host-side check bypass to exploit.
Potential Impact
The vulnerability can leak uninitialized kernel memory contents to the privileged FunctionFS daemon via short USB control OUT transfers. This could expose sensitive kernel memory data to the daemon process. However, it is not exploitable by unprivileged userspace and requires a host stack bypass to trigger. No direct remote code execution or privilege escalation is described.
Mitigation Recommendations
A fix is available in the Linux kernel that changes the copy_to_user() call to copy only the actual received bytes rather than the full requested length. Users should apply the official kernel patch that implements this correction. Since the issue affects privileged FunctionFS daemons, restricting access to these daemons and ensuring host USB stacks enforce short packet checks can reduce risk until patched.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-hqp4-gw43-6pcc
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-63895"]
- Ecosystems
- []
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a5d27ab2a4a8d598912fc83
Added to database: 07/19/2026, 19:38:19 UTC
Last enriched: 07/19/2026, 20:11:40 UTC
Last updated: 07/20/2026, 17:26:47 UTC
Views: 10
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.