In the Linux kernel, the following vulnerability has been resolved:
wifi: ath12k: fix read pointer after free in ath12kmacassignvifto_vdev()
In ath12kmacassignviftovdev(), if arvif is created on a different radio, it gets deleted from that radio through a call to ath12kmacunassignlink_vif(). This action frees the arvif pointer. Subsequently, there is a check involving arvif, which will result in a read-after-free scenario.
Fix this by moving this check after arvif is again assigned via call to ath12kmacassignlinkvif().
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
[
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"156155335136604789014632880139793213915",
"318280139171910976871015925348260344469",
"165695772431394781451666547024280028764",
"333211423710547578885745979230612753357",
"14646644337488778463083228954791248656",
"130966135899905948955770231845532935292",
"256372358218348522173966418888172683615",
"23641802153856096154298891011391591608",
"15583374017751321111493989951354994955",
"61701989205026390568378620164254214738"
]
},
"target": {
"file": "drivers/net/wireless/ath/ath12k/mac.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@57100b87c77818cb0d582a92e5cb32fff85c757d",
"id": "CVE-2024-57995-2d7484e5",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"160691212064508293834106105635380727800",
"180798128642656783331641917475506212728",
"331868534165436836177772451478536309811",
"307744303273463421441066689743040311445",
"97369677346344831712582483195897158081",
"23641802153856096154298891011391591608",
"15583374017751321111493989951354994955",
"61701989205026390568378620164254214738"
]
},
"target": {
"file": "drivers/net/wireless/ath/ath12k/mac.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f3a95a312419e4f1e992525917da9dbcd247038f",
"id": "CVE-2024-57995-81fc0107",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "202982294405804188492365050576310218185",
"length": 1369.0
},
"target": {
"file": "drivers/net/wireless/ath/ath12k/mac.c",
"function": "ath12k_mac_assign_vif_to_vdev"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f3a95a312419e4f1e992525917da9dbcd247038f",
"id": "CVE-2024-57995-a06d2441",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "55482746650222415414408134992056361228",
"length": 1476.0
},
"target": {
"file": "drivers/net/wireless/ath/ath12k/mac.c",
"function": "ath12k_mac_assign_vif_to_vdev"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@57100b87c77818cb0d582a92e5cb32fff85c757d",
"id": "CVE-2024-57995-d8ec50d2",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"160691212064508293834106105635380727800",
"180798128642656783331641917475506212728",
"331868534165436836177772451478536309811",
"307744303273463421441066689743040311445",
"97369677346344831712582483195897158081",
"23641802153856096154298891011391591608",
"15583374017751321111493989951354994955",
"61701989205026390568378620164254214738"
]
},
"target": {
"file": "drivers/net/wireless/ath/ath12k/mac.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a10971c7645a95f5d5dc23c26fbac4bf61801d0",
"id": "CVE-2024-57995-e7ad0689",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "42802143110232706401964124762728219558",
"length": 1620.0
},
"target": {
"file": "drivers/net/wireless/ath/ath12k/mac.c",
"function": "ath12k_mac_assign_vif_to_vdev"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a10971c7645a95f5d5dc23c26fbac4bf61801d0",
"id": "CVE-2024-57995-ebdc5ba0",
"deprecated": false,
"signature_version": "v1"
}
]