{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2023-53764",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2025-12-08T01:18:04.281Z",
        "datePublished": "2025-12-08T01:19:26.619Z",
        "dateUpdated": "2026-08-05T09:15:54.323Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T09:15:54.323Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath12k: Handle lock during peer_id find\n\nath12k_peer_find_by_id() requires that the caller hold the\nab->base_lock. Currently the WBM error path does not hold\nthe lock and calling that function, leads to the\nfollowing lockdep_assert()in QCN9274:\n\n[105162.160893] ------------[ cut here ]------------\n[105162.160916] WARNING: CPU: 3 PID: 0 at drivers/net/wireless/ath/ath12k/peer.c:71 ath12k_peer_find_by_id+0x52/0x60 [ath12k]\n[105162.160933] Modules linked in: ath12k(O) qrtr_mhi qrtr mac80211 cfg80211 mhi qmi_helpers libarc4 nvme nvme_core [last unloaded: ath12k(O)]\n[105162.160967] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G        W  O       6.1.0-rc2+ #3\n[105162.160972] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0056.2019.0506.1527 05/06/2019\n[105162.160977] RIP: 0010:ath12k_peer_find_by_id+0x52/0x60 [ath12k]\n[105162.160990] Code: 07 eb 0f 39 68 24 74 0a 48 8b 00 48 39 f8 75 f3 31 c0 5b 5d c3 48 8d bf b0 f2 00 00 be ff ff ff ff e8 22 20 c4 e2 85 c0 75 bf <0f> 0b eb bb 66 2e 0f 1f 84 00 00 00 00 00 41 54 4c 8d a7 98 f2 00\n[105162.160996] RSP: 0018:ffffa223001acc60 EFLAGS: 00010246\n[105162.161003] RAX: 0000000000000000 RBX: ffff9f0573940000 RCX: 0000000000000000\n[105162.161008] RDX: 0000000000000001 RSI: ffffffffa3951c8e RDI: ffffffffa39a96d7\n[105162.161013] RBP: 000000000000000a R08: 0000000000000000 R09: 0000000000000000\n[105162.161017] R10: ffffa223001acb40 R11: ffffffffa3d57c60 R12: ffff9f057394f2e0\n[105162.161022] R13: ffff9f0573940000 R14: ffff9f04ecd659c0 R15: ffff9f04d5a9b040\n[105162.161026] FS:  0000000000000000(0000) GS:ffff9f0575600000(0000) knlGS:0000000000000000\n[105162.161031] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[105162.161036] CR2: 00001d5c8277a008 CR3: 00000001e6224006 CR4: 00000000003706e0\n[105162.161041] Call Trace:\n[105162.161046]  <IRQ>\n[105162.161051]  ath12k_dp_rx_process_wbm_err+0x6da/0xaf0 [ath12k]\n[105162.161072]  ? ath12k_dp_rx_process_err+0x80e/0x15a0 [ath12k]\n[105162.161084]  ? __lock_acquire+0x4ca/0x1a60\n[105162.161104]  ath12k_dp_service_srng+0x263/0x310 [ath12k]\n[105162.161120]  ath12k_pci_ext_grp_napi_poll+0x1c/0x70 [ath12k]\n[105162.161133]  __napi_poll+0x22/0x260\n[105162.161141]  net_rx_action+0x2f8/0x380\n[105162.161153]  __do_softirq+0xd0/0x4c9\n[105162.161162]  irq_exit_rcu+0x88/0xe0\n[105162.161169]  common_interrupt+0xa5/0xc0\n[105162.161174]  </IRQ>\n[105162.161179]  <TASK>\n[105162.161184]  asm_common_interrupt+0x22/0x40\n\nHandle spin lock/unlock in WBM error path to hold the necessary lock\nexpected by ath12k_peer_find_by_id().\n\nTested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0-03171-QCAHKSWPL_SILICONZ-1"
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 8.8,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:A - The vulnerable code is the ath12k Wi-Fi RX datapath error handler, entered from hardware WBM release-ring descriptors produced by received 802.11 frames. An attacker must be within radio range of the QCN9274/WCN7850 AP or client to inject the frames that generate DESC_ADDR_ZERO errors, which is the Adjacent vector.\nAC:L - The attacker controls both sides of the race: crafted QoS/MC-BC frames drive the unlocked list walk in the ext-grp NAPI softirq, while spoofed-MAC association/deauthentication churn drives concurrent list_del()+kfree() from the CE tasklet on another CPU, and both can be repeated indefinitely at line rate. On lockdep-enabled kernels the WARN in ath12k_peer_find_by_id() fires deterministically on a single crafted frame with no race needed at all.\nPR:N - No credentials or account on the target system are required — the attacker is a wireless peer, and the frames that land in the WBM error path (including ones bearing unknown or stale peer IDs, which still cause a full list traversal) are processed before any association or authentication state is validated by this code.\nUI:N - The RX error path is executed automatically in softirq context whenever the hardware posts a matching descriptor; no action by any local user or administrator is needed.\nS:U - The corruption and its consequences are confined to the kernel's own memory and the ath12k driver state, with no crossing into another security authority such as a hypervisor or IOMMU boundary.\nC:H - The lockless traversal reads a struct ath12k_peer that may already have been kfree()d, and a dangling or slab-reused list.next lets the walk dereference attacker-groomable memory, giving an unbounded read of kernel heap contents that can be turned into an information-disclosure oracle via the drop/deliver decision the lookup controls.\nI:H - This is a use-after-free, so heap grooming of the reclaimed peer allocation yields the classic UAF write/control-flow primitives; additionally a stale match lets a frame that should be dropped pass the peer-validity gate and be delivered up to mac80211 as if it came from a valid peer.\nA:H - Walking a list being concurrently modified and freed reliably produces an oops on a poisoned or unmapped next pointer, or an endless loop in softirq leading to a soft lockup, and on CONFIG_LOCKDEP builds the WARN at peer.c:71 becomes a guaranteed panic under panic_on_warn."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/wireless/ath/ath12k/dp_rx.c"
                    ],
                    "versions": [
                        {
                            "version": "d889913205cf7ebda905b1e62c5867ed4e39f6c2",
                            "lessThan": "9faf7c696610a348ca94a224d55c946b19b3279d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d889913205cf7ebda905b1e62c5867ed4e39f6c2",
                            "lessThan": "95a389e2ff3212d866cc51c77d682d2934074eb8",
                            "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/wireless/ath/ath12k/dp_rx.c"
                    ],
                    "versions": [
                        {
                            "version": "6.3",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.3",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.3.4",
                            "lessThanOrEqual": "6.3.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.4",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.3",
                                    "versionEndExcluding": "6.3.4"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.3",
                                    "versionEndExcluding": "6.4"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/9faf7c696610a348ca94a224d55c946b19b3279d"
                },
                {
                    "url": "https://git.kernel.org/stable/c/95a389e2ff3212d866cc51c77d682d2934074eb8"
                }
            ],
            "title": "wifi: ath12k: Handle lock during peer_id find",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}