Files
vuln-cve/data/2025/38xxx/CVE-2025-38643.json
T

304 lines
18 KiB
JSON

{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2025-38643",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2025-04-16T04:51:24.030Z",
"datePublished": "2025-08-22T16:00:49.172Z",
"dateUpdated": "2026-10-15T22:02:27.338Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T12:03:39.579Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: cfg80211: Add missing lock in cfg80211_check_and_end_cac()\n\nCallers of wdev_chandef() must hold the wiphy mutex.\n\nBut the worker cfg80211_propagate_cac_done_wk() never takes the lock.\nWhich triggers the warning below with the mesh_peer_connected_dfs\ntest from hostapd and not (yet) released mac80211 code changes:\n\nWARNING: CPU: 0 PID: 495 at net/wireless/chan.c:1552 wdev_chandef+0x60/0x165\nModules linked in:\nCPU: 0 UID: 0 PID: 495 Comm: kworker/u4:2 Not tainted 6.14.0-rc5-wt-g03960e6f9d47 #33 13c287eeabfe1efea01c0bcc863723ab082e17cf\nWorkqueue: cfg80211 cfg80211_propagate_cac_done_wk\nStack:\n 00000000 00000001 ffffff00 6093267c\n 00000000 6002ec30 6d577c50 60037608\n 00000000 67e8d108 6063717b 00000000\nCall Trace:\n [<6002ec30>] ? _printk+0x0/0x98\n [<6003c2b3>] show_stack+0x10e/0x11a\n [<6002ec30>] ? _printk+0x0/0x98\n [<60037608>] dump_stack_lvl+0x71/0xb8\n [<6063717b>] ? wdev_chandef+0x60/0x165\n [<6003766d>] dump_stack+0x1e/0x20\n [<6005d1b7>] __warn+0x101/0x20f\n [<6005d3a8>] warn_slowpath_fmt+0xe3/0x15d\n [<600b0c5c>] ? mark_lock.part.0+0x0/0x4ec\n [<60751191>] ? __this_cpu_preempt_check+0x0/0x16\n [<600b11a2>] ? mark_held_locks+0x5a/0x6e\n [<6005d2c5>] ? warn_slowpath_fmt+0x0/0x15d\n [<60052e53>] ? unblock_signals+0x3a/0xe7\n [<60052f2d>] ? um_set_signals+0x2d/0x43\n [<60751191>] ? __this_cpu_preempt_check+0x0/0x16\n [<607508b2>] ? lock_is_held_type+0x207/0x21f\n [<6063717b>] wdev_chandef+0x60/0x165\n [<605f89b4>] regulatory_propagate_dfs_state+0x247/0x43f\n [<60052f00>] ? um_set_signals+0x0/0x43\n [<605e6bfd>] cfg80211_propagate_cac_done_wk+0x3a/0x4a\n [<6007e460>] process_scheduled_works+0x3bc/0x60e\n [<6007d0ec>] ? move_linked_works+0x4d/0x81\n [<6007d120>] ? assign_work+0x0/0xaa\n [<6007f81f>] worker_thread+0x220/0x2dc\n [<600786ef>] ? set_pf_worker+0x0/0x57\n [<60087c96>] ? to_kthread+0x0/0x43\n [<6008ab3c>] kthread+0x2d3/0x2e2\n [<6007f5ff>] ? worker_thread+0x0/0x2dc\n [<6006c05b>] ? calculate_sigpending+0x0/0x56\n [<6003b37d>] new_thread_handler+0x4a/0x64\nirq event stamp: 614611\nhardirqs last enabled at (614621): [<00000000600bc96b>] __up_console_sem+0x82/0xaf\nhardirqs last disabled at (614630): [<00000000600bc92c>] __up_console_sem+0x43/0xaf\nsoftirqs last enabled at (614268): [<00000000606c55c6>] __ieee80211_wake_queue+0x933/0x985\nsoftirqs last disabled at (614266): [<00000000606c52d6>] __ieee80211_wake_queue+0x643/0x985"
}
],
"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 worker is driven by DFS events on the 802.11 stack — radar detection, which an attacker in RF range can force on demand by transmitting DFS radar pulse patterns, and CAC completion during normal AP/mesh operation; the racing side is driven by remote peer activity (mesh peering, association, channel switch) on a second radio. This is same-RF-segment reach, matching the WiFi = Adjacent classification.\nAC:L - The attacker controls both sides of the race — radar-event injection can be repeated indefinitely to re-arm the unlocked worker while over-the-air traffic keeps the second wiphy busy in mutex-protected chanctx work. The guaranteed lockdep WARN in wdev_chandef() needs no race at all, only the multi-radio DFS configuration that is standard on AP/mesh hardware.\nPR:N - No credentials or local account are needed; radar pulse injection and mesh/association frames require no authentication to the target, and CAC-finished events occur during ordinary AP operation. The attacker holds no privileges on the affected system.\nUI:N - No victim action is required — the worker runs automatically from the cfg80211 workqueue whenever a DFS radar or CAC-finished event propagates to another wiphy.\nS:U - The corruption and crash are confined to the kernel's own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Running __ieee80211_link_release_channel() without the wiphy mutex races chanctx refcounting and can free a struct ieee80211_chanctx still referenced by another link, yielding a use-after-free on a heap object whose contents are influenceable via crafted channel parameters — a UAF read primitive over kernel memory.\nI:H - The same unsynchronized free/reassign of chanctx state gives a write-after-free into a reallocated slab object, and the unlocked mutation of link chanctx pointers and CAC state corrupts wiphy-mutex-protected structures — memory corruption exploitable for control-flow hijack.\nA:H - The path unconditionally hits the lockdep_assert_wiphy() WARN in wdev_chandef(), which panics on panic_on_warn systems, and the chanctx refcount/list corruption and use-after-free produce kernel oopses and panics on the affected AP."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"net/wireless/reg.c"
],
"versions": [
{
"version": "26ec17a1dc5ecdd8d91aba63ead6f8b5ad5dea0d",
"lessThan": "defe9ce121160788547e8e6ec4438ad8a14f40dd",
"status": "affected",
"versionType": "git"
},
{
"version": "26ec17a1dc5ecdd8d91aba63ead6f8b5ad5dea0d",
"lessThan": "b3d24038eb775f2f7a1dfef58d8e1dc444a12820",
"status": "affected",
"versionType": "git"
},
{
"version": "26ec17a1dc5ecdd8d91aba63ead6f8b5ad5dea0d",
"lessThan": "4a63523d3541eef4cf504a9682e6fbe94ffe79a6",
"status": "affected",
"versionType": "git"
},
{
"version": "26ec17a1dc5ecdd8d91aba63ead6f8b5ad5dea0d",
"lessThan": "7022df2248c08c6f75a01714163ac902333bf3db",
"status": "affected",
"versionType": "git"
},
{
"version": "26ec17a1dc5ecdd8d91aba63ead6f8b5ad5dea0d",
"lessThan": "dbce810607726408f889d3358f4780fd1436861e",
"status": "affected",
"versionType": "git"
},
{
"version": "26ec17a1dc5ecdd8d91aba63ead6f8b5ad5dea0d",
"lessThan": "2c5dee15239f3f3e31aa5c8808f18996c039e2c1",
"status": "affected",
"versionType": "git"
},
{
"version": "2dbb6faebb94d6d5ae87e5ea6be9280c366393e1",
"status": "affected",
"versionType": "git"
},
{
"version": "a4f85674e4693904ade7cbf6722d0d105d8062d8",
"status": "affected",
"versionType": "git"
},
{
"version": "e233cbaf8ecc5859f0417dd53899da4edb477991",
"status": "affected",
"versionType": "git"
},
{
"version": "4.14.170",
"lessThan": "4.15",
"status": "affected",
"versionType": "semver"
},
{
"version": "4.19.102",
"lessThan": "4.20",
"status": "affected",
"versionType": "semver"
},
{
"version": "5.4.18",
"lessThan": "5.5",
"status": "affected",
"versionType": "semver"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"net/wireless/reg.c"
],
"versions": [
{
"version": "5.5",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.5",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.1.164",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.6.118",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.12.57",
"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.5",
"versionEndExcluding": "6.1.164"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5",
"versionEndExcluding": "6.6.118"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5",
"versionEndExcluding": "6.12.57"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5",
"versionEndExcluding": "6.15.10"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5",
"versionEndExcluding": "6.16.1"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.5",
"versionEndExcluding": "6.17"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.170"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.102"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.18"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/defe9ce121160788547e8e6ec4438ad8a14f40dd"
},
{
"url": "https://git.kernel.org/stable/c/b3d24038eb775f2f7a1dfef58d8e1dc444a12820"
},
{
"url": "https://git.kernel.org/stable/c/4a63523d3541eef4cf504a9682e6fbe94ffe79a6"
},
{
"url": "https://git.kernel.org/stable/c/7022df2248c08c6f75a01714163ac902333bf3db"
},
{
"url": "https://git.kernel.org/stable/c/dbce810607726408f889d3358f4780fd1436861e"
},
{
"url": "https://git.kernel.org/stable/c/2c5dee15239f3f3e31aa5c8808f18996c039e2c1"
}
],
"title": "wifi: cfg80211: Add missing lock in cfg80211_check_and_end_cac()",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2025-38643",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-10-15T21:52:31.279965Z"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2026-10-15T22:02:27.338Z"
}
}
]
}
}