In the Linux kernel, the following vulnerability has been resolved:
wifi: ath12k: fix warning when unbinding
If there is an error during some initialization related to firmware, the buffers dp->txring[i].txstatus are released. However this is released again when the device is unbinded (ath12kpci), and we get: WARNING: CPU: 0 PID: 2098 at mm/slub.c:4689 freelargekmalloc+0x4d/0x80 Call Trace: freelargekmalloc ath12kdpfree ath12kcoredeinit ath12kpci_remove ...
The issue is always reproducible from a VM because the MSI addressing initialization is failing.
In order to fix the issue, just set the buffers to NULL after releasing in order to avoid the double free.
[
{
"id": "CVE-2024-53191-23013cf8",
"signature_version": "v1",
"digest": {
"length": 413.0,
"function_hash": "63580368121820743684588057902516267961"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@94c9100b600f05a36b33f9ed76dbd6fb0eb25386",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c",
"function": "ath12k_dp_free"
}
},
{
"id": "CVE-2024-53191-323de2ee",
"signature_version": "v1",
"digest": {
"length": 413.0,
"function_hash": "63580368121820743684588057902516267961"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@90556b96338aa6037cd26dac857327fda7c19732",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c",
"function": "ath12k_dp_free"
}
},
{
"id": "CVE-2024-53191-3779a8ae",
"signature_version": "v1",
"digest": {
"length": 413.0,
"function_hash": "63580368121820743684588057902516267961"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@223b546c6222d42147eff034433002ca5e2e7e09",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c",
"function": "ath12k_dp_free"
}
},
{
"id": "CVE-2024-53191-7b759d17",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"43157106520363168277784931902627403981",
"63401320418298070773424600236544122286",
"265734015741190274194822033040614921689",
"50125516326765727069546761985892260368",
"40594504330879573092387237457747717413"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ca68ce0d9f4bcd032fd1334441175ae399642a06",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c"
}
},
{
"id": "CVE-2024-53191-8898a3fc",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"43157106520363168277784931902627403981",
"63401320418298070773424600236544122286",
"265734015741190274194822033040614921689",
"50125516326765727069546761985892260368",
"40594504330879573092387237457747717413"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@90556b96338aa6037cd26dac857327fda7c19732",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c"
}
},
{
"id": "CVE-2024-53191-90037b07",
"signature_version": "v1",
"digest": {
"length": 413.0,
"function_hash": "63580368121820743684588057902516267961"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ca68ce0d9f4bcd032fd1334441175ae399642a06",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c",
"function": "ath12k_dp_free"
}
},
{
"id": "CVE-2024-53191-ee272e1f",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"43157106520363168277784931902627403981",
"63401320418298070773424600236544122286",
"265734015741190274194822033040614921689",
"50125516326765727069546761985892260368",
"40594504330879573092387237457747717413"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@223b546c6222d42147eff034433002ca5e2e7e09",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c"
}
},
{
"id": "CVE-2024-53191-f5b71a19",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"43157106520363168277784931902627403981",
"63401320418298070773424600236544122286",
"265734015741190274194822033040614921689",
"50125516326765727069546761985892260368",
"40594504330879573092387237457747717413"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@94c9100b600f05a36b33f9ed76dbd6fb0eb25386",
"target": {
"file": "drivers/net/wireless/ath/ath12k/dp.c"
}
}
]