Vulnerability · Published Aug 26, 2026 · Assigned by Linux

CVE-2026-80575Input: cs40l50-vibra - validate custom data from user space

High 7.8

In plain English

A high-severity 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.1% (higher than 2% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.1%top 98.2% 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: Input: cs40l50-vibra - validate custom data from user space cs40l50_add() copies the custom data of an FF_PERIODIC/FF_CUSTOM effect straight from the ff_effect the user passed to EVIOCSFF, without requiring it to hold anything: work_data.custom_data = memdup_array_user(periodic->custom_data, periodic->custom_len, sizeof(s16)); work_data.custom_len = periodic->custom_len; The driver then reads two words out of that buffer: custom_data[0] as the waveform bank in cs40l50_effect_bank_set(), and custom_data[1] as the index within the bank in cs40l50_effect_index_set(). Neither read is covered by a length check, and custom_len is fully user controlled: - custom_len == 0 makes memdup_array_user() call memdup_user() with a length of zero, which returns ZERO_SIZE_PTR rather than an error, so custom_data[0] dereferences it. - custom_len == 1 allocates two bytes. A bank of ROM or RAM keeps effect->type out of the OWT case, and custom_data[1] is then read one word past the allocation. The bank value itself is also mishandled. It is masked with CS40L50_CUSTOM_DATA_MASK (0xffff) but stored in an s16, so a custom_data[0] of 0x8000 or above wraps to a negative value that passes the "bank_type >= CS40L50_WVFRM_BANK_NUM" test. cs40l50_effect_index_set() indexes vib->dsp.banks[] with it before the switch statement's default case gets a chance to reject it: base_index = vib->dsp.banks[effect->type].base_index; max_index = vib->dsp.banks[effect->type].max_index; Require the two words the driver reads to be present, and hold the masked bank in a u32 so the existing upper-bound test covers the whole range. The da7280 haptic driver already range checks custom_len this way.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:13linux6.12.105-1DEBIAN-CVE-2026-80575
Debian:14linux7.1.10-1DEBIAN-CVE-2026-80575
Debian:12linux-6.126.12.107-1~deb12u1DEBIAN-CVE-2026-80575
Ubuntu:26.04:LTSlinux7.0.0-42.42UBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-aws7.0.0-1016.17UBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-gcp7.0.0-1016.18UBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-hwe-7.07.0.0-42.42~24.04.1UBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-ibm7.0.0-1017.17UBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-oem-7.07.0.0-1017.17UBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-oracle7.0.0-1015.16UBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-80575
Ubuntu:26.04:LTSlinux-riscv7.0.0-42.42.1UBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-80575
Ubuntu:24.04:LTSlinux-riscv-7.07.0.0-42.42.1~24.04.1UBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-80575
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-80575

Affected products (as reported)

VendorProductVersions
Linux Linux c38fe1bb5d21c2ce0857965ee06174ee587d6b42 – before 3855b6a11f8a7aceb8181cc08c99afef58517006c38fe1bb5d21c2ce0857965ee06174ee587d6b42 – before 52a818c586ae2c36b7324bfaefb547f5e866a8aec38fe1bb5d21c2ce0857965ee06174ee587d6b42 – before d38554602a0b04e85fad28ce72c7500cf50d419bc38fe1bb5d21c2ce0857965ee06174ee587d6b42 – before 7d5c576cb1c86047b1fcb1aa9532e17fc5e46c1d
Linux Linux 6.11

References