{
  "cveId": "CVE-2026-80575",
  "url": "https://patchblox.com/security/cve/CVE-2026-80575",
  "summary": "CVE-2026-80575 is fixed in 2 products on 1 platform, first by DEBIAN-CVE-2026-80575, released August 27, 2026. It is not reported as exploited. Patch Radar priority: High.",
  "title": "linux: In the Linux kernel, the following vulnerability has been resolved:  Input: cs40l50-vibra - validate custom data from...",
  "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-\u003Ecustom_data,                                               periodic-\u003Ecustom_len,                                               sizeof(s16));     work_data.custom_len = periodic-\u003Ecustom_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-\u003Etype 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 \u0022bank_type \u003E= CS40L50_WVFRM_BANK_NUM\u0022 test. cs40l50_effect_index_set() indexes vib-\u003Edsp.banks[] with it before the switch statement\u0027s default case gets a chance to reject it:      base_index = vib-\u003Edsp.banks[effect-\u003Etype].base_index;     max_index = vib-\u003Edsp.banks[effect-\u003Etype].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.",
  "published": "2026-08-26T15:17:13Z",
  "severity": "high",
  "cvss": 7.8,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
  "epss": 0.0012,
  "epssPercentile": 0.0182,
  "priority": "High",
  "priorityTier": 3,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "6.12.105-1",
      "fix": "DEBIAN-CVE-2026-80575",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-80575",
      "released": "2026-08-27T00:27:02Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "7.1.10-1",
      "fix": "DEBIAN-CVE-2026-80575",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-80575",
      "released": "2026-08-27T00:27:02Z"
    },
    {
      "platform": "linux",
      "product": "linux-6.12",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "6.12.107-1~deb12u1",
      "fix": "DEBIAN-CVE-2026-80575",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-80575",
      "released": "2026-08-27T00:27:02Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-09T01:18:40Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}