{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2022-49661","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-02-26T02:21:30.435Z","datePublished":"2025-02-26T02:23:58.352Z","dateUpdated":"2025-05-04T08:42:47.296Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2025-05-04T08:42:47.296Z"},"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":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/usb/gs_usb.c"],"versions":[{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"339fa9f80d3b94177a7a459c6d115d3b56007d5a","status":"affected","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"c1d806bc29ff7ffe0e2a023583c8720ed96cb0b0","status":"affected","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"d91492638b054f4a359621ef216242be5973ed6b","status":"affected","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"6f655b5e13fa4b27e915b6c209ac0da74fd75963","status":"affected","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"d0b8e223998866b3e7b2895927d4e9689b0a80d8","status":"affected","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"0e60230bc64355c80abe993d1719fdb318094e20","status":"affected","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"ffb6cc6601ec7c8fa963dcf76025df4a02f2cf5c","status":"affected","versionType":"git"},{"version":"d08e973a77d128b25e01a08c34d89593fdf222da","lessThan":"2bda24ef95c0311ab93bda00db40486acf30bd0a","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/can/usb/gs_usb.c"],"versions":[{"version":"3.16","status":"affected"},{"version":"0","lessThan":"3.16","status":"unaffected","versionType":"semver"},{"version":"4.9.323","lessThanOrEqual":"4.9.*","status":"unaffected","versionType":"semver"},{"version":"4.14.288","lessThanOrEqual":"4.14.*","status":"unaffected","versionType":"semver"},{"version":"4.19.252","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.205","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.130","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.54","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"5.18.11","lessThanOrEqual":"5.18.*","status":"unaffected","versionType":"semver"},{"version":"5.19","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"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"}]}]}],"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"}],"title":"can: gs_usb: gs_usb_open/close(): fix memory leak","x_generator":{"engine":"bippy-1.2.0"}}}}