{"id":"CVE-2022-49661","state":"PUBLISHED","title":"can: gs_usb: gs_usb_open/close(): fix memory leak","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ncan: gs_usb: gs_usb_open/close(): fix memory leak\n\nThe gs_usb driver appears to suffer from a malady common to many USB\nCAN adapter drivers in that it performs usb_alloc_coherent() to\nallocate a number of USB request blocks (URBs) for RX, and then later\nrelies on usb_kill_anchored_urbs() to free them, but this doesn't\nactually free them. As a result, this may be leaking DMA memory that's\nbeen used by the driver.\n\nThis commit is an adaptation of the techniques found in the esd_usb2\ndriver where a similar design pattern led to a memory leak. It\nexplicitly frees the RX URBs and their DMA memory via a call to\nusb_free_coherent(). Since the RX URBs were allocated in the\ngs_can_open(), we remove them in gs_can_close() rather than in the\ndisconnect function as was done in esd_usb2.\n\nFor more information, see the 928150fad41b (\"can: esd_usb2: fix memory\nleak\").","publishedAt":"2025-02-26T02:23:58.352Z","updatedAt":"2026-05-11T19:04:14.924Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"339fa9f80d3b94177a7a459c6d115d3b56007d5a","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"c1d806bc29ff7ffe0e2a023583c8720ed96cb0b0","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"d91492638b054f4a359621ef216242be5973ed6b","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"6f655b5e13fa4b27e915b6c209ac0da74fd75963","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"d0b8e223998866b3e7b2895927d4e9689b0a80d8","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"0e60230bc64355c80abe993d1719fdb318094e20","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"ffb6cc6601ec7c8fa963dcf76025df4a02f2cf5c","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"2bda24ef95c0311ab93bda00db40486acf30bd0a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/usb/gs_usb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.16","versionType":"semver"},{"version":"4.9.323","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.288","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.252","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.205","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.130","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.54","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.18.11","status":"unaffected","lessThanOrEqual":"5.18.*","versionType":"semver"},{"version":"5.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/usb/gs_usb.c"]}],"references":["https://git.kernel.org/stable/c/339fa9f80d3b94177a7a459c6d115d3b56007d5a","https://git.kernel.org/stable/c/c1d806bc29ff7ffe0e2a023583c8720ed96cb0b0","https://git.kernel.org/stable/c/d91492638b054f4a359621ef216242be5973ed6b","https://git.kernel.org/stable/c/6f655b5e13fa4b27e915b6c209ac0da74fd75963","https://git.kernel.org/stable/c/d0b8e223998866b3e7b2895927d4e9689b0a80d8","https://git.kernel.org/stable/c/0e60230bc64355c80abe993d1719fdb318094e20","https://git.kernel.org/stable/c/ffb6cc6601ec7c8fa963dcf76025df4a02f2cf5c","https://git.kernel.org/stable/c/2bda24ef95c0311ab93bda00db40486acf30bd0a"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/49xxx/CVE-2022-49661.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-49661","state":"PUBLISHED","datePublished":"2025-02-26T02:23:58.352Z","dateUpdated":"2026-05-11T19:04:14.924Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-02-26T02:21:30.435Z"},"containers":{"cna":{"title":"can: gs_usb: gs_usb_open/close(): fix memory leak","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncan: gs_usb: gs_usb_open/close(): fix memory leak\n\nThe gs_usb driver appears to suffer from a malady common to many USB\nCAN adapter drivers in that it performs usb_alloc_coherent() to\nallocate a number of USB request blocks (URBs) for RX, and then later\nrelies on usb_kill_anchored_urbs() to free them, but this doesn't\nactually free them. As a result, this may be leaking DMA memory that's\nbeen used by the driver.\n\nThis commit is an adaptation of the techniques found in the esd_usb2\ndriver where a similar design pattern led to a memory leak. It\nexplicitly frees the RX URBs and their DMA memory via a call to\nusb_free_coherent(). Since the RX URBs were allocated in the\ngs_can_open(), we remove them in gs_can_close() rather than in the\ndisconnect function as was done in esd_usb2.\n\nFor more information, see the 928150fad41b (\"can: esd_usb2: fix memory\nleak\")."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"339fa9f80d3b94177a7a459c6d115d3b56007d5a","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"c1d806bc29ff7ffe0e2a023583c8720ed96cb0b0","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"d91492638b054f4a359621ef216242be5973ed6b","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"6f655b5e13fa4b27e915b6c209ac0da74fd75963","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"d0b8e223998866b3e7b2895927d4e9689b0a80d8","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"0e60230bc64355c80abe993d1719fdb318094e20","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"ffb6cc6601ec7c8fa963dcf76025df4a02f2cf5c","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","status":"affected","lessThan":"2bda24ef95c0311ab93bda00db40486acf30bd0a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/usb/gs_usb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.16","versionType":"semver"},{"version":"4.9.323","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.288","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.252","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.205","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.130","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.54","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.18.11","status":"unaffected","lessThanOrEqual":"5.18.*","versionType":"semver"},{"version":"5.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/usb/gs_usb.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/339fa9f80d3b94177a7a459c6d115d3b56007d5a"},{"url":"https://git.kernel.org/stable/c/c1d806bc29ff7ffe0e2a023583c8720ed96cb0b0"},{"url":"https://git.kernel.org/stable/c/d91492638b054f4a359621ef216242be5973ed6b"},{"url":"https://git.kernel.org/stable/c/6f655b5e13fa4b27e915b6c209ac0da74fd75963"},{"url":"https://git.kernel.org/stable/c/d0b8e223998866b3e7b2895927d4e9689b0a80d8"},{"url":"https://git.kernel.org/stable/c/0e60230bc64355c80abe993d1719fdb318094e20"},{"url":"https://git.kernel.org/stable/c/ffb6cc6601ec7c8fa963dcf76025df4a02f2cf5c"},{"url":"https://git.kernel.org/stable/c/2bda24ef95c0311ab93bda00db40486acf30bd0a"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T19:04:14.924Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"4.9.323"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"4.14.288"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"4.19.252"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"5.4.205"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"5.10.130"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"5.15.54"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"5.18.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16","versionEndExcluding":"5.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}