{"id":"CVE-2026-64427","state":"PUBLISHED","title":"HID: logitech-dj: Fix maxfield check in DJ short report validation","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: logitech-dj: Fix maxfield check in DJ short report validation\n\nCommit b6a57912854e (\"HID: logitech-dj: Prevent REPORT_ID_DJ_SHORT\nrelated user initiated OOB write\") added validation for the DJ short\noutput report, but the error path dereferences rep->field[0] even when\nrep->maxfield is zero.\n\nCommit 8b9a097eb2fc (\"HID: logitech-dj: fix wrong detection of bad\nDJ_SHORT output report\") made the check conditional on rep being present,\nbut a crafted descriptor can still create report ID 0x20 with only padding\noutput items. hid-core registers the report, ignores the padding field,\nand leaves rep->maxfield as zero.\n\nIn that case the validation enters the rep->maxfield < 1 branch and then\ndereferences rep->field[0]->report_count while printing the error message,\ncausing a NULL pointer dereference during probe. This is reproducible with\nuhid by emulating a Logitech receiver with a padding-only DJ short output\nreport:\n\n  BUG: KASAN: null-ptr-deref in logi_dj_probe+0xb1/0x754 [hid_logitech_dj]\n  Read of size 4 at addr 0000000000000028 by task kworker/4:1/129\n  ...\n  Call Trace:\n   logi_dj_probe+0xb1/0x754 [hid_logitech_dj]\n   hid_device_probe+0x329/0x3f0 [hid]\n   really_probe+0x162/0x570\n   __device_attach+0x137/0x2c0\n   bus_probe_device+0x38/0xc0\n   device_add+0xa56/0xce0\n   hid_add_device+0x19c/0x280 [hid]\n   uhid_device_add_worker+0x2c/0xb0 [uhid]\n\nReject the zero-field report before printing the field report_count.","publishedAt":"2026-07-25T08:51:04.686Z","updatedAt":"2026-08-19T16:28:13.596Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"7754ade02d0fb1caf20392baf4e02937378fd136","status":"affected","lessThan":"f3790a6af9c7f47d454225cab9dc145270e48f62","versionType":"git"},{"version":"2ed9638cfbf9d49bdef9b0f5ee547236c2c2f500","status":"affected","lessThan":"1215febd644c3e16f77e0f1799d89544dd57a754","versionType":"git"},{"version":"eeb5ad388595ca2b6624689198a057847f3a3e19","status":"affected","lessThan":"6f7f22a8d244c2e586b8eb61c7585784b62aea01","versionType":"git"},{"version":"968e84f5c0dca4960580d174500e4bbf0c45dc15","status":"affected","lessThan":"95b3f23d632490b5eb285b9fcf7284f2ac8f9872","versionType":"git"},{"version":"ce2a731c179df8869e1969a1b2b5b9e4e1c25f8b","status":"affected","lessThan":"80c1e18473f63fd7c6a2bc9ad6f3d0a6cc4fb500","versionType":"git"},{"version":"bc3bba4656ad280267ea78cf845ab6b1d95b9fcd","status":"affected","lessThan":"2b70bebc709489d29a31ac2935aeffb8d5228395","versionType":"git"},{"version":"b6a57912854e7ea36f3b270032661140cc4209cd","status":"affected","lessThan":"7a89ad762fad53d56b7002d7ffc923a4b7f4006f","versionType":"git"},{"version":"b6a57912854e7ea36f3b270032661140cc4209cd","status":"affected","lessThan":"590cc4d782487632a52f37c2171bee1eeea29627","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-logitech-dj.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"7.1.4","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/hid/hid-logitech-dj.c"]}],"references":["https://git.kernel.org/stable/c/f3790a6af9c7f47d454225cab9dc145270e48f62","https://git.kernel.org/stable/c/1215febd644c3e16f77e0f1799d89544dd57a754","https://git.kernel.org/stable/c/6f7f22a8d244c2e586b8eb61c7585784b62aea01","https://git.kernel.org/stable/c/95b3f23d632490b5eb285b9fcf7284f2ac8f9872","https://git.kernel.org/stable/c/80c1e18473f63fd7c6a2bc9ad6f3d0a6cc4fb500","https://git.kernel.org/stable/c/2b70bebc709489d29a31ac2935aeffb8d5228395","https://git.kernel.org/stable/c/7a89ad762fad53d56b7002d7ffc923a4b7f4006f","https://git.kernel.org/stable/c/590cc4d782487632a52f37c2171bee1eeea29627"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64427.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64427","state":"PUBLISHED","datePublished":"2026-07-25T08:51:04.686Z","dateUpdated":"2026-08-19T16:28:13.596Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.787Z"},"containers":{"cna":{"title":"HID: logitech-dj: Fix maxfield check in DJ short report validation","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: logitech-dj: Fix maxfield check in DJ short report validation\n\nCommit b6a57912854e (\"HID: logitech-dj: Prevent REPORT_ID_DJ_SHORT\nrelated user initiated OOB write\") added validation for the DJ short\noutput report, but the error path dereferences rep->field[0] even when\nrep->maxfield is zero.\n\nCommit 8b9a097eb2fc (\"HID: logitech-dj: fix wrong detection of bad\nDJ_SHORT output report\") made the check conditional on rep being present,\nbut a crafted descriptor can still create report ID 0x20 with only padding\noutput items. hid-core registers the report, ignores the padding field,\nand leaves rep->maxfield as zero.\n\nIn that case the validation enters the rep->maxfield < 1 branch and then\ndereferences rep->field[0]->report_count while printing the error message,\ncausing a NULL pointer dereference during probe. This is reproducible with\nuhid by emulating a Logitech receiver with a padding-only DJ short output\nreport:\n\n  BUG: KASAN: null-ptr-deref in logi_dj_probe+0xb1/0x754 [hid_logitech_dj]\n  Read of size 4 at addr 0000000000000028 by task kworker/4:1/129\n  ...\n  Call Trace:\n   logi_dj_probe+0xb1/0x754 [hid_logitech_dj]\n   hid_device_probe+0x329/0x3f0 [hid]\n   really_probe+0x162/0x570\n   __device_attach+0x137/0x2c0\n   bus_probe_device+0x38/0xc0\n   device_add+0xa56/0xce0\n   hid_add_device+0x19c/0x280 [hid]\n   uhid_device_add_worker+0x2c/0xb0 [uhid]\n\nReject the zero-field report before printing the field report_count."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"7754ade02d0fb1caf20392baf4e02937378fd136","status":"affected","lessThan":"f3790a6af9c7f47d454225cab9dc145270e48f62","versionType":"git"},{"version":"2ed9638cfbf9d49bdef9b0f5ee547236c2c2f500","status":"affected","lessThan":"1215febd644c3e16f77e0f1799d89544dd57a754","versionType":"git"},{"version":"eeb5ad388595ca2b6624689198a057847f3a3e19","status":"affected","lessThan":"6f7f22a8d244c2e586b8eb61c7585784b62aea01","versionType":"git"},{"version":"968e84f5c0dca4960580d174500e4bbf0c45dc15","status":"affected","lessThan":"95b3f23d632490b5eb285b9fcf7284f2ac8f9872","versionType":"git"},{"version":"ce2a731c179df8869e1969a1b2b5b9e4e1c25f8b","status":"affected","lessThan":"80c1e18473f63fd7c6a2bc9ad6f3d0a6cc4fb500","versionType":"git"},{"version":"bc3bba4656ad280267ea78cf845ab6b1d95b9fcd","status":"affected","lessThan":"2b70bebc709489d29a31ac2935aeffb8d5228395","versionType":"git"},{"version":"b6a57912854e7ea36f3b270032661140cc4209cd","status":"affected","lessThan":"7a89ad762fad53d56b7002d7ffc923a4b7f4006f","versionType":"git"},{"version":"b6a57912854e7ea36f3b270032661140cc4209cd","status":"affected","lessThan":"590cc4d782487632a52f37c2171bee1eeea29627","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-logitech-dj.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"7.1.4","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/hid/hid-logitech-dj.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/f3790a6af9c7f47d454225cab9dc145270e48f62"},{"url":"https://git.kernel.org/stable/c/1215febd644c3e16f77e0f1799d89544dd57a754"},{"url":"https://git.kernel.org/stable/c/6f7f22a8d244c2e586b8eb61c7585784b62aea01"},{"url":"https://git.kernel.org/stable/c/95b3f23d632490b5eb285b9fcf7284f2ac8f9872"},{"url":"https://git.kernel.org/stable/c/80c1e18473f63fd7c6a2bc9ad6f3d0a6cc4fb500"},{"url":"https://git.kernel.org/stable/c/2b70bebc709489d29a31ac2935aeffb8d5228395"},{"url":"https://git.kernel.org/stable/c/7a89ad762fad53d56b7002d7ffc923a4b7f4006f"},{"url":"https://git.kernel.org/stable/c/590cc4d782487632a52f37c2171bee1eeea29627"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-19T16:28:13.596Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}