{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-38601", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-04-16T04:51:24.028Z", "datePublished": "2025-08-19T17:03:35.798Z", "dateUpdated": "2026-08-05T12:03:24.843Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:03:24.843Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath11k: clear initialized flag for deinit-ed srng lists\n\nIn a number of cases we see kernel panics on resume due\nto ath11k kernel page fault, which happens under the\nfollowing circumstances:\n\n1) First ath11k_hal_dump_srng_stats() call\n\n Last interrupt received for each group:\n ath11k_pci 0000:01:00.0: group_id 0 22511ms before\n ath11k_pci 0000:01:00.0: group_id 1 14440788ms before\n [..]\n ath11k_pci 0000:01:00.0: failed to receive control response completion, polling..\n ath11k_pci 0000:01:00.0: Service connect timeout\n ath11k_pci 0000:01:00.0: failed to connect to HTT: -110\n ath11k_pci 0000:01:00.0: failed to start core: -110\n ath11k_pci 0000:01:00.0: firmware crashed: MHI_CB_EE_RDDM\n ath11k_pci 0000:01:00.0: already resetting count 2\n ath11k_pci 0000:01:00.0: failed to wait wlan mode request (mode 4): -110\n ath11k_pci 0000:01:00.0: qmi failed to send wlan mode off: -110\n ath11k_pci 0000:01:00.0: failed to reconfigure driver on crash recovery\n [..]\n\n2) At this point reconfiguration fails (we have 2 resets) and\n ath11k_core_reconfigure_on_crash() calls ath11k_hal_srng_deinit()\n which destroys srng lists. However, it does not reset per-list\n ->initialized flag.\n\n3) Second ath11k_hal_dump_srng_stats() call sees stale ->initialized\n flag and attempts to dump srng stats:\n\n Last interrupt received for each group:\n ath11k_pci 0000:01:00.0: group_id 0 66785ms before\n ath11k_pci 0000:01:00.0: group_id 1 14485062ms before\n ath11k_pci 0000:01:00.0: group_id 2 14485062ms before\n ath11k_pci 0000:01:00.0: group_id 3 14485062ms before\n ath11k_pci 0000:01:00.0: group_id 4 14780845ms before\n ath11k_pci 0000:01:00.0: group_id 5 14780845ms before\n ath11k_pci 0000:01:00.0: group_id 6 14485062ms before\n ath11k_pci 0000:01:00.0: group_id 7 66814ms before\n ath11k_pci 0000:01:00.0: group_id 8 68997ms before\n ath11k_pci 0000:01:00.0: group_id 9 67588ms before\n ath11k_pci 0000:01:00.0: group_id 10 69511ms before\n BUG: unable to handle page fault for address: ffffa007404eb010\n #PF: supervisor read access in kernel mode\n #PF: error_code(0x0000) - not-present page\n PGD 100000067 P4D 100000067 PUD 10022d067 PMD 100b01067 PTE 0\n Oops: 0000 [#1] PREEMPT SMP NOPTI\n RIP: 0010:ath11k_hal_dump_srng_stats+0x2b4/0x3b0 [ath11k]\n Call Trace:\n \n ? __die_body+0xae/0xb0\n ? page_fault_oops+0x381/0x3e0\n ? exc_page_fault+0x69/0xa0\n ? asm_exc_page_fault+0x22/0x30\n ? ath11k_hal_dump_srng_stats+0x2b4/0x3b0 [ath11k (HASH:6cea 4)]\n ath11k_qmi_driver_event_work+0xbd/0x1050 [ath11k (HASH:6cea 4)]\n worker_thread+0x389/0x930\n kthread+0x149/0x170\n\nClear per-list ->initialized flag in ath11k_hal_srng_deinit()." } ], "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 state is reached through the ath11k firmware crash/recovery path, which an attacker within WiFi radio range can drive by injecting malformed 802.11 frames or operating a rogue AP that induces repeated firmware asserts. This matches the WiFi frame-injection adjacent-network vector rather than requiring local access.\nAC:L - The attacker controls the rate of induced firmware crashes, and it is exactly that flooding that produces the overlapping resets (\"already resetting count 2\") and QMI timeouts that make ath11k_core_reconfigure_on_crash() take the err_hal_srng_deinit path; the subsequent FW_INIT_DONE dump then reliably dereferences the stale pointers. No condition outside the attacker's influence is needed.\nPR:N - Inducing firmware asserts via 802.11 frames requires no account, association, or credentials on the victim system — management frames are processed pre-authentication, and an AP-mode ath11k device processes frames from unauthenticated clients.\nUI:N - No victim action is required; the device only needs to have its WiFi interface up, and the entire crash/recovery/dump sequence runs asynchronously in kernel workqueue context.\nS:U - The dangling-pointer dereference and its consequences are confined to the kernel's own security authority on the affected host; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - This is a use-after-free read: ath11k_hal_dump_srng_stats() dereferences stale tp_addr/hp_addr pointers into dma_free_coherent()'d memory that may already be recycled to other kernel allocations, and prints those words into the kernel log, disclosing freed kernel memory contents.\nI:H - The driver retains a fully populated srng_list of dangling pointers into freed DMA-coherent pages that are handed back to the allocator and reused by other subsystems; per kernel UAF scoring this dangling-pointer condition on recycled memory is treated as a high integrity impact.\nA:H - The demonstrated result is an unrecoverable kernel page fault/oops (\"BUG: unable to handle page fault ... Oops: 0000 [#1] PREEMPT SMP NOPTI\") inside ath11k_qmi_driver_event_work on a worker thread, panicking the machine on resume and rendering the system unavailable." } ] } ], "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/ath11k/hal.c" ], "versions": [ { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "3a6daae987a829534636fd85ed6f84d5f0ad7fa4", "status": "affected", "versionType": "git" }, { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "eff3bb53c18c0ed4ab6f43d412b3ed3aecad52d5", "status": "affected", "versionType": "git" }, { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "916ac18d526a26f6072866b1a97622cf1351ef1c", "status": "affected", "versionType": "git" }, { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "5bf201c55fdf303e79005038648dfa1e8af48f54", "status": "affected", "versionType": "git" }, { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "72a48be1f53942793f3bc68a37fad1f38b53b082", "status": "affected", "versionType": "git" }, { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "0ebb5fe494501c19f31270008b26ab95201af6fd", "status": "affected", "versionType": "git" }, { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "16872194c80f2724472fc207991712895ac8a230", "status": "affected", "versionType": "git" }, { "version": "5118935b1bc28d0bce9427e584e11e905e68ee9a", "lessThan": "a5b46aa7cf5f05c213316a018e49a8e086efd98e", "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/ath11k/hal.c" ], "versions": [ { "version": "5.7", "status": "affected" }, { "version": "0", "lessThan": "5.7", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.241", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.190", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.148", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.102", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.42", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.15.10", "lessThanOrEqual": "6.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.16.1", "lessThanOrEqual": "6.16.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.17", "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": "5.7", "versionEndExcluding": "5.10.241" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.7", "versionEndExcluding": "5.15.190" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.7", "versionEndExcluding": "6.1.148" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.7", "versionEndExcluding": "6.6.102" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.7", "versionEndExcluding": "6.12.42" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.7", "versionEndExcluding": "6.15.10" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.7", "versionEndExcluding": "6.16.1" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.7", "versionEndExcluding": "6.17" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/3a6daae987a829534636fd85ed6f84d5f0ad7fa4" }, { "url": "https://git.kernel.org/stable/c/eff3bb53c18c0ed4ab6f43d412b3ed3aecad52d5" }, { "url": "https://git.kernel.org/stable/c/916ac18d526a26f6072866b1a97622cf1351ef1c" }, { "url": "https://git.kernel.org/stable/c/5bf201c55fdf303e79005038648dfa1e8af48f54" }, { "url": "https://git.kernel.org/stable/c/72a48be1f53942793f3bc68a37fad1f38b53b082" }, { "url": "https://git.kernel.org/stable/c/0ebb5fe494501c19f31270008b26ab95201af6fd" }, { "url": "https://git.kernel.org/stable/c/16872194c80f2724472fc207991712895ac8a230" }, { "url": "https://git.kernel.org/stable/c/a5b46aa7cf5f05c213316a018e49a8e086efd98e" } ], "title": "wifi: ath11k: clear initialized flag for deinit-ed srng lists", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html" }, { "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T17:40:15.658Z" } } ] } }