{"id":"CVE-2026-80752","state":"PUBLISHED","title":"Input: psxpad-spi - set driver data before use","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nInput: psxpad-spi - set driver data before use\n\npsxpad_spi_suspend() retrieves the controller state with\nspi_get_drvdata(), but probe never stores it, so suspend dereferences a\nNULL pointer. Store it during probe.","publishedAt":"2026-09-03T08:26:31.962Z","updatedAt":"2026-09-04T04:58:32.588Z","severity":{"score":8.4,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"e980066e434a9c74ff1665ed9140427e95b0ee7c","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"1bba6bd6861b1e0c8ecf20cd1892f0d3877c02a2","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"86531cdfb3a03213e2569deed5195412a4e3f7ee","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"da6b8b05db0cf43e0cc198431fa8ee9739b3b817","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"1edcb7ffee7ac4dc35cbe5bbd0e27bac3614ebe4","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"8d622c58205adbc8af19864e277386528b671345","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"62e25677d1440085381b047ec4984be9b6793759","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"732f38c36059e68ba3b4b89c56911d777fd3185c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/input/joystick/psxpad-spi.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.12","versionType":"semver"},{"version":"5.10.266","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.217","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.184","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.153","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.105","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.46","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.10","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/input/joystick/psxpad-spi.c"]}],"references":["https://git.kernel.org/stable/c/e980066e434a9c74ff1665ed9140427e95b0ee7c","https://git.kernel.org/stable/c/1bba6bd6861b1e0c8ecf20cd1892f0d3877c02a2","https://git.kernel.org/stable/c/86531cdfb3a03213e2569deed5195412a4e3f7ee","https://git.kernel.org/stable/c/da6b8b05db0cf43e0cc198431fa8ee9739b3b817","https://git.kernel.org/stable/c/1edcb7ffee7ac4dc35cbe5bbd0e27bac3614ebe4","https://git.kernel.org/stable/c/8d622c58205adbc8af19864e277386528b671345","https://git.kernel.org/stable/c/62e25677d1440085381b047ec4984be9b6793759","https://git.kernel.org/stable/c/732f38c36059e68ba3b4b89c56911d777fd3185c"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80752.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80752","state":"PUBLISHED","datePublished":"2026-09-03T08:26:31.962Z","dateUpdated":"2026-09-04T04:58:32.588Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.790Z"},"containers":{"cna":{"title":"Input: psxpad-spi - set driver data before use","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nInput: psxpad-spi - set driver data before use\n\npsxpad_spi_suspend() retrieves the controller state with\nspi_get_drvdata(), but probe never stores it, so suspend dereferences a\nNULL pointer. Store it during probe."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"e980066e434a9c74ff1665ed9140427e95b0ee7c","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"1bba6bd6861b1e0c8ecf20cd1892f0d3877c02a2","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"86531cdfb3a03213e2569deed5195412a4e3f7ee","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"da6b8b05db0cf43e0cc198431fa8ee9739b3b817","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"1edcb7ffee7ac4dc35cbe5bbd0e27bac3614ebe4","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"8d622c58205adbc8af19864e277386528b671345","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"62e25677d1440085381b047ec4984be9b6793759","versionType":"git"},{"version":"8be193c7b1f44d3f4dcb27107df0831709c2deb1","status":"affected","lessThan":"732f38c36059e68ba3b4b89c56911d777fd3185c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/input/joystick/psxpad-spi.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.12","versionType":"semver"},{"version":"5.10.266","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.217","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.184","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.153","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.105","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.46","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.10","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/input/joystick/psxpad-spi.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/e980066e434a9c74ff1665ed9140427e95b0ee7c"},{"url":"https://git.kernel.org/stable/c/1bba6bd6861b1e0c8ecf20cd1892f0d3877c02a2"},{"url":"https://git.kernel.org/stable/c/86531cdfb3a03213e2569deed5195412a4e3f7ee"},{"url":"https://git.kernel.org/stable/c/da6b8b05db0cf43e0cc198431fa8ee9739b3b817"},{"url":"https://git.kernel.org/stable/c/1edcb7ffee7ac4dc35cbe5bbd0e27bac3614ebe4"},{"url":"https://git.kernel.org/stable/c/8d622c58205adbc8af19864e277386528b671345"},{"url":"https://git.kernel.org/stable/c/62e25677d1440085381b047ec4984be9b6793759"},{"url":"https://git.kernel.org/stable/c/732f38c36059e68ba3b4b89c56911d777fd3185c"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.4,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The fault is reached only via the kernel system-sleep PM path (suspend/hibernate) calling dpm_suspend() -> psxpad_spi_suspend(); it is not triggered by network traffic, wireless frames, or SPI packet handling from a remote peer.\nAC:L - On embedded retro consoles/arcade cabinets with a probed psxpad-spi controller, every system suspend deterministically calls psxpad_spi_suspend() with NULL drvdata and faults in psxpad_set_motor_level(); no race, heap layout, or rare timing is required beyond CONFIG_JOYSTICK_PSXPAD_SPI hardware being present.\nPR:N - No Linux account is required on typical embedded/kiosk deployments: ACPI power-button sleep, lid-close policies, or automated idle suspend invoke the PM path without authenticated local userspace, and user namespaces cannot substitute for triggering host system sleep.\nUI:N - Exploitation requires only initiating or allowing a system suspend/hibernate cycle (power button, logind, or policy-driven sleep); no separate victim action such as opening a file, mounting a filesystem, or plugging in a controller at attack time is needed once the SPI pad is bound.\nS:U - The NULL dereference and resulting kernel oops/panic occur entirely within the same host kernel that owns the psxpad-spi driver; there is no VM escape, IOMMU/DMA boundary bypass, or cross-security-authority impact.\nC:H - psxpad_spi_suspend() passes a NULL pad into psxpad_set_motor_level(), which performs kernel stores through a NULL structure pointer; this memory-unsafe dereference class can disclose kernel memory during fault/Oops handling or on mappings where low addresses are reachable, not merely a silent crash.\nI:H - The suspend path attempts writes to pad->motor1level and pad->motor2level via a NULL base pointer, constituting attempted kernel memory corruption that can yield further write primitives or control-flow hijack on configurations without strict NULL-page protection, beyond immediate denial of service.\nA:H - The NULL pointer dereference in psxpad_set_motor_level() during psxpad_spi_suspend() causes a kernel Oops/panic that aborts or corrupts the suspend sequence, denying availability of a clean sleep/resume cycle on affected systems."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-09-04T04:58:32.588Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"5.10.266"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"5.15.217"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.1.184"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.6.153"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.12.105"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.18.46"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"7.1.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}