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
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/net/can/sja1000/peak_pci.c"
],
"versions": [
{
"version": "e6d9c80b7ca1",
"lessThan": "1c616528ba4a",
"status": "affected",
"versionType": "git"
},
{
"version": "e6d9c80b7ca1",
"lessThan": "447d44cd2f67",
"status": "affected",
"versionType": "git"
},
{
"version": "e6d9c80b7ca1",
"lessThan": "34914971bb32",
"status": "affected",
"versionType": "git"
},
{
"version": "e6d9c80b7ca1",
"lessThan": "adbda14730aa",
"status": "affected",
"versionType": "git"
},
{
"version": "e6d9c80b7ca1",
"lessThan": "1248582e47a9",
"status": "affected",
"versionType": "git"
},
{
"version": "e6d9c80b7ca1",
"lessThan": "28f28e4bc3a5",
"status": "affected",
"versionType": "git"
},
{
"version": "e6d9c80b7ca1",
"lessThan": "0e5afdc2315b",
"status": "affected",
"versionType": "git"
},
{
"version": "e6d9c80b7ca1",
"lessThan": "949fe9b35570",
"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/sja1000/peak_pci.c"
],
"versions": [
{
"version": "3.4",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.4",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.4.290",
"lessThanOrEqual": "4.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.9.288",
"lessThanOrEqual": "4.9.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.14.253",
"lessThanOrEqual": "4.14.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.214",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.156",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.76",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.14.15",
"lessThanOrEqual": "5.14.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/0e5afdc2315b0737edcf55bede4ee1640d2d464d
git.kernel.org/stable/c/1248582e47a9f7ce0ecd156c39fc61f8b6aa3699
git.kernel.org/stable/c/1c616528ba4aeb1125a06b407572ab7b56acae38
git.kernel.org/stable/c/28f28e4bc3a5e0051faa963f10b778ab38c1db69
git.kernel.org/stable/c/34914971bb3244db4ce2be44e9438a9b30c56250
git.kernel.org/stable/c/447d44cd2f67a20b596ede3ca3cd67086dfd9ca9
git.kernel.org/stable/c/949fe9b35570361bc6ee2652f89a0561b26eec98
git.kernel.org/stable/c/adbda14730aacce41c0d3596415aa39ad63eafd9