CVE-2021-47231
Linux Kernel CAN BUS Analyzer Tool (SocketCAN Driver) Coherent Buffer Leak
Description
In the Linux kernel, the following vulnerability has been resolved: can: mcba_usb: fix memory leak in mcba_usb Syzbot reported memory leak in SocketCAN driver for Microchip CAN BUS Analyzer Tool. The problem was in unfreed usb_coherent. In mcba_usb_start() 20 coherent buffers are allocated and there is nothing, that frees them: 1) In callback function the urb is resubmitted and that's all 2) In disconnect function urbs are simply killed, but URB_FREE_BUFFER is not set (see mcba_usb_start) and this flag cannot be used with coherent buffers. Fail log: | [ 1354.053291][ T8413] mcba_usb 1-1:0.0 can0: device disconnected | [ 1367.059384][ T8420] kmemleak: 20 new suspected memory leaks (see /sys/kernel/debug/kmem) So, all allocated buffers should be freed with usb_free_coherent() explicitly NOTE: The same pattern for allocating and freeing coherent buffers is used in drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c
INFO
Published Date :
May 21, 2024, 3:15 p.m.
Last Modified :
April 4, 2025, 2:31 p.m.
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Remotely Exploitable :
No
Impact Score :
3.6
Exploitability Score :
1.8
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2021-47231
.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2021-47231
vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2021-47231
vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
Initial Analysis by [email protected]
Apr. 04, 2025
Action Type Old Value New Value Added CWE CWE-401 Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:5.13:rc1:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:5.13:rc2:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:5.13:rc3:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:5.13:rc4:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:5.13:rc5:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:5.13:rc6:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.12 up to (excluding) 4.14.238 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.15 up to (excluding) 4.19.196 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.20 up to (excluding) 5.4.128 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.5 up to (excluding) 5.10.46 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.11 up to (excluding) 5.12.13 Added Reference Type CVE: https://git.kernel.org/stable/c/6bd3d80d1f019cefa7011056c54b323f1d8b8e83 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/6bd3d80d1f019cefa7011056c54b323f1d8b8e83 Types: Patch Added Reference Type CVE: https://git.kernel.org/stable/c/6f87c0e21ad20dd3d22108e33db1c552dfa352a0 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/6f87c0e21ad20dd3d22108e33db1c552dfa352a0 Types: Patch Added Reference Type CVE: https://git.kernel.org/stable/c/89df95ce32be204eef2e7d4b2f6fb552fb191a68 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/89df95ce32be204eef2e7d4b2f6fb552fb191a68 Types: Patch Added Reference Type CVE: https://git.kernel.org/stable/c/91c02557174be7f72e46ed7311e3bea1939840b0 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/91c02557174be7f72e46ed7311e3bea1939840b0 Types: Patch Added Reference Type CVE: https://git.kernel.org/stable/c/a115198caaab6d663bef75823a3c5f0802306d60 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/a115198caaab6d663bef75823a3c5f0802306d60 Types: Patch Added Reference Type CVE: https://git.kernel.org/stable/c/d0760a4ef85697bc756d06eae17ae27f3f055401 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/d0760a4ef85697bc756d06eae17ae27f3f055401 Types: Patch -
CVE Modified by af854a3a-2127-422b-91ae-364da2661108
Nov. 21, 2024
Action Type Old Value New Value Added Reference https://git.kernel.org/stable/c/6bd3d80d1f019cefa7011056c54b323f1d8b8e83 Added Reference https://git.kernel.org/stable/c/6f87c0e21ad20dd3d22108e33db1c552dfa352a0 Added Reference https://git.kernel.org/stable/c/89df95ce32be204eef2e7d4b2f6fb552fb191a68 Added Reference https://git.kernel.org/stable/c/91c02557174be7f72e46ed7311e3bea1939840b0 Added Reference https://git.kernel.org/stable/c/a115198caaab6d663bef75823a3c5f0802306d60 Added Reference https://git.kernel.org/stable/c/d0760a4ef85697bc756d06eae17ae27f3f055401 -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Nov. 06, 2024
Action Type Old Value New Value Added CVSS V3.1 CISA-ADP AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
May. 28, 2024
Action Type Old Value New Value -
CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
May. 21, 2024
Action Type Old Value New Value Added Description In the Linux kernel, the following vulnerability has been resolved: can: mcba_usb: fix memory leak in mcba_usb Syzbot reported memory leak in SocketCAN driver for Microchip CAN BUS Analyzer Tool. The problem was in unfreed usb_coherent. In mcba_usb_start() 20 coherent buffers are allocated and there is nothing, that frees them: 1) In callback function the urb is resubmitted and that's all 2) In disconnect function urbs are simply killed, but URB_FREE_BUFFER is not set (see mcba_usb_start) and this flag cannot be used with coherent buffers. Fail log: | [ 1354.053291][ T8413] mcba_usb 1-1:0.0 can0: device disconnected | [ 1367.059384][ T8420] kmemleak: 20 new suspected memory leaks (see /sys/kernel/debug/kmem) So, all allocated buffers should be freed with usb_free_coherent() explicitly NOTE: The same pattern for allocating and freeing coherent buffers is used in drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c Added Reference kernel.org https://git.kernel.org/stable/c/89df95ce32be204eef2e7d4b2f6fb552fb191a68 [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/a115198caaab6d663bef75823a3c5f0802306d60 [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/6f87c0e21ad20dd3d22108e33db1c552dfa352a0 [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/6bd3d80d1f019cefa7011056c54b323f1d8b8e83 [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/d0760a4ef85697bc756d06eae17ae27f3f055401 [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/91c02557174be7f72e46ed7311e3bea1939840b0 [No types assigned]
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2021-47231
is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2021-47231
weaknesses.