{"id":"CVE-2026-31751","state":"PUBLISHED","title":"comedi: dt2815: add hardware detection to prevent crash","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ncomedi: dt2815: add hardware detection to prevent crash\n\nThe dt2815 driver crashes when attached to I/O ports without actual\nhardware present. This occurs because syzkaller or users can attach\nthe driver to arbitrary I/O addresses via COMEDI_DEVCONFIG ioctl.\n\nWhen no hardware exists at the specified port, inb() operations return\n0xff (floating bus), but outb() operations can trigger page faults due\nto undefined behavior, especially under race conditions:\n\n  BUG: unable to handle page fault for address: 000000007fffff90\n  #PF: supervisor write access in kernel mode\n  #PF: error_code(0x0002) - not-present page\n  RIP: 0010:dt2815_attach+0x6e0/0x1110\n\nAdd hardware detection by reading the status register before attempting\nany write operations. If the read returns 0xff, assume no hardware is\npresent and fail the attach with -ENODEV. This prevents crashes from\noutb() operations on non-existent hardware.","publishedAt":"2026-05-01T14:14:43.551Z","updatedAt":"2026-05-11T22:15:06.157Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"8d63161837f1bf8810dbcd2a583c2bbf5ca6d733","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"d2a786efdb9971f2a647724625da5bbecc994dc9","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"0dcf33994b8dcf3db36530fb7e2cf9f89e5cbac3","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"d5d9df8b08d68d083ac57abc2c887dfb1f31af63","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"65c528fbeddd88478c210052f6c7b21be4973156","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"34c8b3a91bdfbe4573650b4cd750ef639101fdc5","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"34b13250c618d7441508c6ef369144aa8a9b9bfa","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"93853512f565e625df2397f0d8050d6aafd7c3ad","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/comedi/drivers/dt2815.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"5.10.253","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.203","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.168","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.134","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.81","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.22","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.12","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/comedi/drivers/dt2815.c"]}],"references":["https://git.kernel.org/stable/c/8d63161837f1bf8810dbcd2a583c2bbf5ca6d733","https://git.kernel.org/stable/c/d2a786efdb9971f2a647724625da5bbecc994dc9","https://git.kernel.org/stable/c/0dcf33994b8dcf3db36530fb7e2cf9f89e5cbac3","https://git.kernel.org/stable/c/d5d9df8b08d68d083ac57abc2c887dfb1f31af63","https://git.kernel.org/stable/c/65c528fbeddd88478c210052f6c7b21be4973156","https://git.kernel.org/stable/c/34c8b3a91bdfbe4573650b4cd750ef639101fdc5","https://git.kernel.org/stable/c/34b13250c618d7441508c6ef369144aa8a9b9bfa","https://git.kernel.org/stable/c/93853512f565e625df2397f0d8050d6aafd7c3ad"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:40.391Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/31xxx/CVE-2026-31751.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-31751","state":"PUBLISHED","datePublished":"2026-05-01T14:14:43.551Z","dateUpdated":"2026-05-11T22:15:06.157Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-03-09T15:48:24.139Z"},"containers":{"cna":{"title":"comedi: dt2815: add hardware detection to prevent crash","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncomedi: dt2815: add hardware detection to prevent crash\n\nThe dt2815 driver crashes when attached to I/O ports without actual\nhardware present. This occurs because syzkaller or users can attach\nthe driver to arbitrary I/O addresses via COMEDI_DEVCONFIG ioctl.\n\nWhen no hardware exists at the specified port, inb() operations return\n0xff (floating bus), but outb() operations can trigger page faults due\nto undefined behavior, especially under race conditions:\n\n  BUG: unable to handle page fault for address: 000000007fffff90\n  #PF: supervisor write access in kernel mode\n  #PF: error_code(0x0002) - not-present page\n  RIP: 0010:dt2815_attach+0x6e0/0x1110\n\nAdd hardware detection by reading the status register before attempting\nany write operations. If the read returns 0xff, assume no hardware is\npresent and fail the attach with -ENODEV. This prevents crashes from\noutb() operations on non-existent hardware."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"8d63161837f1bf8810dbcd2a583c2bbf5ca6d733","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"d2a786efdb9971f2a647724625da5bbecc994dc9","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"0dcf33994b8dcf3db36530fb7e2cf9f89e5cbac3","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"d5d9df8b08d68d083ac57abc2c887dfb1f31af63","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"65c528fbeddd88478c210052f6c7b21be4973156","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"34c8b3a91bdfbe4573650b4cd750ef639101fdc5","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"34b13250c618d7441508c6ef369144aa8a9b9bfa","versionType":"git"},{"version":"d6a929b7608ae157cef86d00cc580d1038f0b985","status":"affected","lessThan":"93853512f565e625df2397f0d8050d6aafd7c3ad","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/comedi/drivers/dt2815.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"5.10.253","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.203","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.168","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.134","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.81","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.22","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.12","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/comedi/drivers/dt2815.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8d63161837f1bf8810dbcd2a583c2bbf5ca6d733"},{"url":"https://git.kernel.org/stable/c/d2a786efdb9971f2a647724625da5bbecc994dc9"},{"url":"https://git.kernel.org/stable/c/0dcf33994b8dcf3db36530fb7e2cf9f89e5cbac3"},{"url":"https://git.kernel.org/stable/c/d5d9df8b08d68d083ac57abc2c887dfb1f31af63"},{"url":"https://git.kernel.org/stable/c/65c528fbeddd88478c210052f6c7b21be4973156"},{"url":"https://git.kernel.org/stable/c/34c8b3a91bdfbe4573650b4cd750ef639101fdc5"},{"url":"https://git.kernel.org/stable/c/34b13250c618d7441508c6ef369144aa8a9b9bfa"},{"url":"https://git.kernel.org/stable/c/93853512f565e625df2397f0d8050d6aafd7c3ad"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T22:15:06.157Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.10.253"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.15.203"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.1.168"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.6.134"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.12.81"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.18.22"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.19.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"7.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}