CVE-2026-31412

Source
https://cve.org/CVERecord?id=CVE-2026-31412
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-31412.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-31412
Downstream
Published
2026-04-10T10:35:05.796Z
Modified
2026-04-14T03:47:52.431995Z
Summary
usb: gadget: f_mass_storage: Fix potential integer overflow in check_command_size_in_blocks()
Details

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

usb: gadget: fmassstorage: Fix potential integer overflow in checkcommandsizeinblocks()

The check_command_size_in_blocks() function calculates the data size in bytes by left shifting common->data_size_from_cmnd by the block size (common->curlun->blkbits). However, it does not validate whether this shift operation will cause an integer overflow.

Initially, the block size is set up in fsg_lun_open() , and the common->data_size_from_cmnd is set up in do_scsi_command(). During initialization, there is no integer overflow check for the interaction between two variables.

So if a malicious USB host sends a SCSI READ or WRITE command requesting a large amount of data (common->data_size_from_cmnd), the left shift operation can wrap around. This results in a truncated data size, which can bypass boundary checks and potentially lead to memory corruption or out-of-bounds accesses.

Fix this by using the checkshloverflow() macro to safely perform the shift and catch any overflows.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31412.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
144974e7f9e32b53b02f6c8632be45d8f43d6ab5
Fixed
91817ad5452defe69bc7bc0e355f0ed5d01125cc
Fixed
ce0caaed5940162780c5c223b8ae54968a5f059b
Fixed
228b37936376143f4b60cc6828663f6eaceb81b5
Fixed
3428dc5520c811e66622b2f5fa43341bf9a1f8b3
Fixed
387ebb0453b99d71491419a5dc4ab4bee0cacbac
Fixed
8479891d1f04a8ce55366fe4ca361ccdb96f02e1

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-31412.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.3.0
Fixed
6.1.167
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.130
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.78
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.19
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
6.19.9

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-31412.json"