Vulnerability Details : CVE-2021-47456
In the Linux kernel, the following vulnerability has been resolved:
can: peak_pci: peak_pci_remove(): fix UAF
When remove the module peek_pci, referencing 'chan' again after
releasing 'dev' will cause UAF.
Fix this by releasing 'dev' later.
The following log reveals it:
[ 35.961814 ] BUG: KASAN: use-after-free in peak_pci_remove+0x16f/0x270 [peak_pci]
[ 35.963414 ] Read of size 8 at addr ffff888136998ee8 by task modprobe/5537
[ 35.965513 ] Call Trace:
[ 35.965718 ] dump_stack_lvl+0xa8/0xd1
[ 35.966028 ] print_address_description+0x87/0x3b0
[ 35.966420 ] kasan_report+0x172/0x1c0
[ 35.966725 ] ? peak_pci_remove+0x16f/0x270 [peak_pci]
[ 35.967137 ] ? trace_irq_enable_rcuidle+0x10/0x170
[ 35.967529 ] ? peak_pci_remove+0x16f/0x270 [peak_pci]
[ 35.967945 ] __asan_report_load8_noabort+0x14/0x20
[ 35.968346 ] peak_pci_remove+0x16f/0x270 [peak_pci]
[ 35.968752 ] pci_device_remove+0xa9/0x250
Vulnerability category: Memory Corruption
Products affected by CVE-2021-47456
Please log in to view affected product information.
Exploit prediction scoring system (EPSS) score for CVE-2021-47456
0.06%
Probability of exploitation activity in the next 30 days
EPSS Score History
~ 16 %
Percentile, the proportion of vulnerabilities that are scored at or less
CVSS scores for CVE-2021-47456
Base Score | Base Severity | CVSS Vector | Exploitability Score | Impact Score | Score Source | First Seen |
---|---|---|---|---|---|---|
8.4
|
HIGH | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
2.5
|
5.9
|
134c704f-9b21-4f2e-91b3-4a467353bcc0 | 2024-07-03 |
CWE ids for CVE-2021-47456
-
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.Assigned by: 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary)
-
The code calls sizeof() on a pointer type, which can be an incorrect calculation if the programmer intended to determine the size of the data that is being pointed to.Assigned by: 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary)
References for CVE-2021-47456
-
https://git.kernel.org/stable/c/28f28e4bc3a5e0051faa963f10b778ab38c1db69
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/949fe9b35570361bc6ee2652f89a0561b26eec98
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/34914971bb3244db4ce2be44e9438a9b30c56250
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/1c616528ba4aeb1125a06b407572ab7b56acae38
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/1248582e47a9f7ce0ecd156c39fc61f8b6aa3699
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/adbda14730aacce41c0d3596415aa39ad63eafd9
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/0e5afdc2315b0737edcf55bede4ee1640d2d464d
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/447d44cd2f67a20b596ede3ca3cd67086dfd9ca9
can: peak_pci: peak_pci_remove(): fix UAF - kernel/git/stable/linux.git - Linux kernel stable tree
Jump to