Bug 2521418 (CVE-2026-74681)

Summary: CVE-2026-74681 kernel: usb: misc: usbio: check ibuf_len against rxbuf_len in bulk msg
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: rhel-process-autobot, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in the Linux kernel's USB subsystem, specifically within the `usbio` module. An incorrect buffer size validation occurs in the `usbio_bulk_msg()` function, where the bulk IN (receive) buffer size is mistakenly compared against the bulk OUT endpoint size instead of the actual receive buffer size. This discrepancy can lead to an erroneous size check, potentially causing unexpected behavior or a denial of service when processing USB bulk messages.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-08-22 15:44:37 UTC
In the Linux kernel, the following vulnerability has been resolved:

usb: misc: usbio: check ibuf_len against rxbuf_len in bulk msg

ibuf_len is the bulk IN (receive) buffer size, but the EMSGSIZE check
in usbio_bulk_msg() compares it against txbuf_len — the bulk OUT
endpoint size.  Both are taken independently from different endpoints
in usbio_probe(), so the check is wrong when they differ.

Use rxbuf_len for the IN direction.  This matches the buffer that
actually holds the response data.

Comment 1 Mauro Matteo Cascella 2026-08-24 13:15:54 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2026082231-CVE-2026-74681-f31c@gregkh/T