{"id":"CVE-2026-89620","title":"HID: intel-thc-hid: intel-quickspi: validate report size before copy","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: intel-thc-hid: intel-quickspi: validate report size before copy\n\nwrite_cmd_to_txdma() builds an output report in qsdev->report_buf, a heap\nbuffer allocated in quic…","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","cvssSource":"cna","cwe":["CWE-120"],"vendor":"Linux","product":"Linux","affected":["Linux >= 9d8d51735a3af40b722346931a6a1e50227df4b5 < 6fcefe71aeb524f6e77fe586fe85d873745e917c","Linux >= 9d8d51735a3af40b722346931a6a1e50227df4b5 < ee8ad1bb1e96164d51089b1182f1bd5f187e7baa","Linux >= 9d8d51735a3af40b722346931a6a1e50227df4b5 < a59cf84441f9a17323c89452cec2bf16724c48a9","Linux 6.14"],"published":"2026-09-11","updated":"2026-10-19","sourceUpdated":"2026-10-19T08:49:52.704Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89620","references":[{"url":"https://git.kernel.org/stable/c/6fcefe71aeb524f6e77fe586fe85d873745e917c"},{"url":"https://git.kernel.org/stable/c/ee8ad1bb1e96164d51089b1182f1bd5f187e7baa"},{"url":"https://git.kernel.org/stable/c/a59cf84441f9a17323c89452cec2bf16724c48a9"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89620.json"},{"url":"https://access.redhat.com/security/cve/CVE-2026-89620"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2532028"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-89620"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89620"},{"url":"https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-89620.mbox"}],"tags":["cve.org","csaf","vex","red-hat"],"epss":0.00173,"epssPercentile":0.06728,"scores":{"cna":7.8,"vendor":7},"ingestedAt":"2026-09-14T15:23:07.474Z","slug":"CVE-2026-89620","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nHID: intel-thc-hid: intel-quickspi: validate report size before copy\n\nwrite_cmd_to_txdma() builds an output report in qsdev->report_buf, a heap\nbuffer allocated in quickspi_alloc_report_buf() to the device-descriptor\nderived max_report_len (a few hundred bytes for a touch controller).  It\ncopies the caller-supplied report into that buffer:\n\n    memcpy(write_buf->content, report_buf, report_buf_len);\n\nThe HID core caps a report at HID_MAX_BUFFER_SIZE (16384) by default, and\nquickspi_hid_ll_driver does not set max_buffer_size, so the length reaches\nthe driver unbounded.  A hidraw SET_REPORT/SET_FEATURE ioctl carrying a\nreport larger than max_report_len therefore overflows report_buf with\nattacker-controlled length and content.\n\nRecord the report_buf allocation size and reject reports that do not fit\nbefore copying, matching the equivalent guard in the intel-quicki2c\nsibling (quicki2c_init_write_buf()) and the hid-goodix-spi fix.\n\nwrite_cmd_to_txdma() writes the output report header ahead of the content\nin the same buffer, so size the allocation to cover the header as well.\nThat keeps the added bound from rejecting a maximum-sized report.\n\n## Affected\n\n- `Linux >= 9d8d51735a3af40b722346931a6a1e50227df4b5 < 6fcefe71aeb524f6e77fe586fe85d873745e917c`\n- `Linux >= 9d8d51735a3af40b722346931a6a1e50227df4b5 < ee8ad1bb1e96164d51089b1182f1bd5f187e7baa`\n- `Linux >= 9d8d51735a3af40b722346931a6a1e50227df4b5 < a59cf84441f9a17323c89452cec2bf16724c48a9`\n- `Linux 6.14`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Vendor advisories\n\n- **Red Hat VEX** · Important · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9 · no fix planned: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9 · updated 2026-09-27 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89620.json)","depth":"twilight","depthScore":43,"depthScoreParts":{"impact":42.9,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[{"seq":224656,"id":"CVE-2026-89620","ts":1792401463872,"field":"cvss","old":"7","new":"7.8"},{"seq":202791,"id":"CVE-2026-89620","ts":1789403721853,"field":"cvss","old":"7.8","new":"7"},{"seq":197841,"id":"CVE-2026-89620","ts":1789384320635,"field":"cvss","old":"7","new":"7.8"},{"seq":183740,"id":"CVE-2026-89620","ts":1789356677190,"field":"cvss","old":"7.8","new":"7"},{"seq":153456,"id":"CVE-2026-89620","ts":1789285350584,"field":"cvss","old":null,"new":"7.8"},{"seq":153455,"id":"CVE-2026-89620","ts":1789285350584,"field":"severity","old":"none","new":"high"},{"seq":109642,"id":"CVE-2026-89620","ts":1789183732760,"field":"cvss","old":null,"new":"7"},{"seq":109641,"id":"CVE-2026-89620","ts":1789183732760,"field":"severity","old":"none","new":"high"}]}