CVE-2022-49238: ath11k: free peer for station when disconnect from AP for QCA6390/WCN6855

Published Feb 26, 2025
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

ath11k: free peer for station when disconnect from AP for QCA6390/WCN6855

Commit b4a0f54156ac ("ath11k: move peer delete after vdev stop of station for QCA6390 and WCN6855") is to fix firmware crash by changing the WMI command sequence, but actually skip all the peer delete operation, then it lead commit 58595c9874c6 ("ath11k: Fixing dangling pointer issue upon peer delete failure") not take effect, and then happened a use-after-free warning from KASAN. because the peer->sta is not set to NULL and then used later.

Change to only skip the WMIPEERDELETECMDID for QCA6390/WCN6855.

log of user-after-free:

[ 534.888665] BUG: KASAN: use-after-free in ath11kdprxupdatepeerstats+0x912/0xc10 [ath11k] [ 534.888696] Read of size 8 at addr ffff8881396bb1b8 by task rtcwake/2860

[ 534.888705] CPU: 4 PID: 2860 Comm: rtcwake Kdump: loaded Tainted: G W 5.15.0-wt-ath+ #523 [ 534.888712] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021 [ 534.888716] Call Trace: [ 534.888720] <IRQ> [ 534.888726] dumpstacklvl+0x57/0x7d [ 534.888736] printaddressdescription.constprop.0+0x1f/0x170 [ 534.888745] ? ath11kdprxupdatepeerstats+0x912/0xc10 [ath11k] [ 534.888771] kasanreport.cold+0x83/0xdf [ 534.888783] ? ath11kdprxupdatepeerstats+0x912/0xc10 [ath11k] [ 534.888810] ath11kdprxupdatepeerstats+0x912/0xc10 [ath11k] [ 534.888840] ath11kdprxprocessmonstatus+0x529/0xa70 [ath11k] [ 534.888874] ? ath11kdprxmonstatusbufsreplenish+0x3f0/0x3f0 [ath11k] [ 534.888897] ? checkprevadd+0x20f0/0x20f0 [ 534.888922] ? lockacquire+0xb72/0x1870 [ 534.888937] ? findheldlock+0x33/0x110 [ 534.888954] ath11kdprxprocessmonrings+0x297/0x520 [ath11k] [ 534.888981] ? rcureadunlock+0x40/0x40 [ 534.888990] ? ath11kdprxpdevalloc+0xd90/0xd90 [ath11k] [ 534.889026] ath11kdpservicemonring+0x67/0xe0 [ath11k] [ 534.889053] ? ath11kdprxprocessmonrings+0x520/0x520 [ath11k] [ 534.889075] calltimerfn+0x167/0x4a0 [ 534.889084] ? addtimeron+0x3b0/0x3b0 [ 534.889103] ? lockdephardirqsonprepare.part.0+0x18c/0x370 [ 534.889117] runtimers.part.0+0x539/0x8b0 [ 534.889123] ? ath11kdprxprocessmonrings+0x520/0x520 [ath11k] [ 534.889157] ? calltimerfn+0x4a0/0x4a0 [ 534.889164] ? marklockirq+0x1c30/0x1c30 [ 534.889173] ? clockeventsprogramevent+0xdd/0x280 [ 534.889189] ? markheldlocks+0xa5/0xe0 [ 534.889203] runtimersoftirq+0x97/0x180 [ 534.889213] dosoftirq+0x276/0x86a [ 534.889230] irqexitrcu+0x11c/0x180 [ 534.889238] irqexitrcu+0x5/0x20 [ 534.889244] sysvecapictimerinterrupt+0x8e/0xc0 [ 534.889251] </IRQ> [ 534.889254] <TASK> [ 534.889259] asmsysvecapictimerinterrupt+0x12/0x20 [ 534.889265] RIP: 0010:rawspinunlockirqrestore+0x38/0x70 [ 534.889271] Code: 74 24 10 e8 ea c2 bf fd 48 89 ef e8 12 53 c0 fd 81 e3 00 02 00 00 75 25 9c 58 f6 c4 02 75 2d 48 85 db 74 01 fb bf 01 00 00 00 <e8> 13 a7 b5 fd 65 8b 05 cc d9 9c 5e 85 c0 74 0a 5b 5d c3 e8 a0 ee [ 534.889276] RSP: 0018:ffffc90002e5f880 EFLAGS: 00000206 [ 534.889284] RAX: 0000000000000006 RBX: 0000000000000200 RCX: ffffffff9f256f10 [ 534.889289] RDX: 0000000000000000 RSI: ffffffffa1c6e420 RDI: 0000000000000001 [ 534.889293] RBP: ffff8881095e6200 R08: 0000000000000001 R09: ffffffffa40d2b8f [ 534.889298] R10: fffffbfff481a571 R11: 0000000000000001 R12: ffff8881095e6e68 [ 534.889302] R13: ffffc90002e5f908 R14: 0000000000000246 R15: 0000000000000000 [ 534.889316] ? marklock+0xd0/0x14a0 [ 534.889332] klistnext+0x1d4/0x450 [ 534.889340] ? dpmwaitforsubordinate+0x2d0/0x2d0 [ 534.889350] deviceforeachchild+0xa8/0x140 [ 534.889360] ? deviceremoveclasssymlinks+0x1b0/0x1b0 [ 534.889370] ? lockrelease+0x4bd/0x9f0 [ 534.889378] ? dpmsuspend+0x26b/0x3f0 [ 534.889390] dpmwaitforsubordinate+ ---truncated---

Affected Software

6 affected componentsFixes available
Linux Kernel
Linux Linux kernel>=5.17<5.17.2
debian/linux<5.17.3-1
5.17.3-1
debian/linux<5.17.3-1
5.17.3-1
debian/linux<5.17.3-1
5.17.3-1
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 5.17.3-1
  2. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1
  3. Configuration

    Change the ath11k peer-delete command handling so that WMI_PEER_DELETE_CMDID is skipped only for QCA6390/WCN6855, rather than skipping all peer-delete operations.

    Linux kernel ath11k driver WMI_PEER_DELETE_CMDID skip behavior = Skip WMI_PEER_DELETE_CMDID only for QCA6390 and WCN6855

Event History

Feb 26, 2025
CVE Published
via MITRE·01:56 AM
Data Sourced
via MITRE·01:56 AM
DescriptionSeverity
Data Sourced
via NVD·07:01 AM
RemedyDescriptionSeverityWeaknessAffected Software
Data Sourced
via OSV·07:01 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2022-49238?

CVE-2022-49238 has been classified as a high severity vulnerability due to the potential for firmware crashes.

2

What software is affected by CVE-2022-49238?

CVE-2022-49238 affects the Linux Kernel, specifically versions between 5.17 and 5.17.2.

3

How do I fix CVE-2022-49238?

To fix CVE-2022-49238, update the Linux Kernel to a version later than 5.17.2.

4

What does CVE-2022-49238 impact?

CVE-2022-49238 impacts the ath11k driver related to QCA6390 and WCN6855 hardware.

5

When was CVE-2022-49238 resolved?

CVE-2022-49238 was resolved with the commit b4a0f54156ac in the Linux Kernel.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203