wifi: ath10k: snoc: use memcpy_fromio() for MSA ramdump
Summary
| CVE | CVE-2026-90348 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-09-17 17:17:33 UTC |
| Updated | 2026-09-17 17:17:33 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved:
wifi: ath10k: snoc: use memcpy_fromio() for MSA ramdump
On WCN3990/SNOC the MSA region is mapped with devm_memremap(MEMREMAP_WT).
On arm64 such a mapping is not Normal-cacheable, so unaligned accesses to
it are not permitted. ath10k_msa_dump_memory() copies the region with a
plain memcpy(), whose optimized __pi_memcpy_generic implementation issues
wide/unaligned loads. This triggers an alignment fault (FSC=0x21) Oops in
ath10k_snoc_fw_crashed_dump() while collecting the devcoredump:
Unable to handle kernel paging request ... FSC=0x21: alignment fault
pc : __pi_memcpy_generic
lr : ath10k_snoc_fw_crashed_dump [ath10k_snoc]
The Oops both leaves the firmware RAM dump buffer zeroed (no dump is
captured) and crashes the kernel, which in turn breaks modem SSR
recovery.
Use memcpy_fromio(), which only performs accesses that are valid for such
a device-memory mapping. The generic memcpy_fromio() implementation aligns
the source before issuing word-sized reads and stores the destination with
put_unaligned(), so it is also safe for the coherent DMA allocation used on
the non-reserved-memory path. ath11k and ath12k use the same pattern
when copying target memory into crash dumps, so call it unconditionally
here too.
The MEMREMAP_WT pointer is a plain void *, so an explicit __iomem cast is
needed; use __force to keep sparse happy.
Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.3.7.c5-00107-QCAHLSWMTPL-1 |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 e5bc3658da9c8a535e3fa5c0c875b2a456954e81 git |
Not specified |
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 fed1f662c9f9fd19eeab6c01966b7b5a33804420 git |
Not specified |
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 838cab267ce9a975776e022f25094f8cbe1625d2 git |
Not specified |
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 eb946595a58decdb4cab1b5f3c972ae66f41f1c8 git |
Not specified |
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 152e894e90716163c646d70f86b3afeb70442783 git |
Not specified |
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 7039825a7479df637c4f5d546cb0e1cec18cd8e1 git |
Not specified |
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 045d1bfb72d2631ab9ec74afa491aa788ebb57aa git |
Not specified |
| CNA |
Linux |
Linux |
affected 3f14b73c38431a6a1ed24de568e18ed89b7082e2 4f25071afe9218aaae1c63fbf75e229aa6405319 git |
Not specified |
| CNA |
Linux |
Linux |
affected 5.5 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 5.5 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 5.10.270 5.10.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 5.15.221 5.15.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.1.188 6.1.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.6.157 6.6.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.12.110 6.12.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.52 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.2.6 7.2.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.3-rc1 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/7039825a7479df637c4f5d546cb0e1cec18cd8e1 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/4f25071afe9218aaae1c63fbf75e229aa6405319 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/045d1bfb72d2631ab9ec74afa491aa788ebb57aa |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/838cab267ce9a975776e022f25094f8cbe1625d2 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/eb946595a58decdb4cab1b5f3c972ae66f41f1c8 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/fed1f662c9f9fd19eeab6c01966b7b5a33804420 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/152e894e90716163c646d70f86b3afeb70442783 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/e5bc3658da9c8a535e3fa5c0c875b2a456954e81 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.