{"id":"CVE-2026-97540","state":"PUBLISHED","title":"net: usb: pegasus: don't rely on id table pointer arithmetic","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: usb: pegasus: don't rely on id table pointer arithmetic\n\nThe current code is broken when dynamic ID is involved; in such cases\nusb_device_id parameter of probe lives on the heap and the pointer\narithmetic will get an index that is wildly out of bound. Instead of\nkeeping a side table for additional information, use driver_info field of\nthe usb_device_id.\n\nThe dynamic ID parsing code needs to be updated for this; convert it to\njust write to the reserved entry for dynamic ID and remove the weird loop.","publishedAt":"2026-09-25T10:21:37.410Z","updatedAt":"2026-10-19T09:09:02.510Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"7c940a1100cb0aa18a54dc48d736c0525c0f400c","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"05d47f540d85c8f6697ec5cfc1aa7b4f96a5b31b","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"9425a13960ef38bac237608f25c9ee64ff113086","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"7654812b65047349ea4c111eed42c4315a00e462","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"61b84e964a829d534f24eab4cbd4035d22b52601","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"ce8101c331956bbd3e20681331dfd22eb7c1c1ea","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/usb/pegasus.c","drivers/net/usb/pegasus.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.16","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/usb/pegasus.c","drivers/net/usb/pegasus.h"]}],"references":["https://git.kernel.org/stable/c/7c940a1100cb0aa18a54dc48d736c0525c0f400c","https://git.kernel.org/stable/c/05d47f540d85c8f6697ec5cfc1aa7b4f96a5b31b","https://git.kernel.org/stable/c/9425a13960ef38bac237608f25c9ee64ff113086","https://git.kernel.org/stable/c/7654812b65047349ea4c111eed42c4315a00e462","https://git.kernel.org/stable/c/61b84e964a829d534f24eab4cbd4035d22b52601","https://git.kernel.org/stable/c/ce8101c331956bbd3e20681331dfd22eb7c1c1ea"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/97xxx/CVE-2026-97540.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-97540","state":"PUBLISHED","datePublished":"2026-09-25T10:21:37.410Z","dateUpdated":"2026-10-19T09:09:02.510Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-24T16:01:01.153Z"},"containers":{"cna":{"title":"net: usb: pegasus: don't rely on id table pointer arithmetic","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: usb: pegasus: don't rely on id table pointer arithmetic\n\nThe current code is broken when dynamic ID is involved; in such cases\nusb_device_id parameter of probe lives on the heap and the pointer\narithmetic will get an index that is wildly out of bound. Instead of\nkeeping a side table for additional information, use driver_info field of\nthe usb_device_id.\n\nThe dynamic ID parsing code needs to be updated for this; convert it to\njust write to the reserved entry for dynamic ID and remove the weird loop."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"7c940a1100cb0aa18a54dc48d736c0525c0f400c","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"05d47f540d85c8f6697ec5cfc1aa7b4f96a5b31b","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"9425a13960ef38bac237608f25c9ee64ff113086","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"7654812b65047349ea4c111eed42c4315a00e462","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"61b84e964a829d534f24eab4cbd4035d22b52601","versionType":"git"},{"version":"733260ff9c45bd4db60f45d17e8560a4a68dff4d","status":"affected","lessThan":"ce8101c331956bbd3e20681331dfd22eb7c1c1ea","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/usb/pegasus.c","drivers/net/usb/pegasus.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.16","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/usb/pegasus.c","drivers/net/usb/pegasus.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/7c940a1100cb0aa18a54dc48d736c0525c0f400c"},{"url":"https://git.kernel.org/stable/c/05d47f540d85c8f6697ec5cfc1aa7b4f96a5b31b"},{"url":"https://git.kernel.org/stable/c/9425a13960ef38bac237608f25c9ee64ff113086"},{"url":"https://git.kernel.org/stable/c/7654812b65047349ea4c111eed42c4315a00e462"},{"url":"https://git.kernel.org/stable/c/61b84e964a829d534f24eab4cbd4035d22b52601"},{"url":"https://git.kernel.org/stable/c/ce8101c331956bbd3e20681331dfd22eb7c1c1ea"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:09:02.510Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.16","versionEndExcluding":"6.1.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.16","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.16","versionEndExcluding":"6.12.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.16","versionEndExcluding":"6.18.53"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.16","versionEndExcluding":"7.2.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.16","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}