CVE-2026-90348
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:
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.
Read full descriptionShow less
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
Technical details traces, logs and code from the original report
Unable to handle kernel paging request ... FSC=0x21: alignment fault pc : __pi_memcpy_generic lr : ath10k_snoc_fw_crashed_dump [ath10k_snoc]
CVSS
NVD hasn't assigned a CVSS score to this CVE (common since the April 2026 policy change).
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days: 0.22%
- Percentile among all scored CVEs: 11
- Score date: 10/5/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
Affected technologies (1)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
References
- https://git.kernel.org/stable/c/045d1bfb72d2631ab9ec74afa491aa788ebb57aa
- https://git.kernel.org/stable/c/152e894e90716163c646d70f86b3afeb70442783
- https://git.kernel.org/stable/c/4f25071afe9218aaae1c63fbf75e229aa6405319
- https://git.kernel.org/stable/c/7039825a7479df637c4f5d546cb0e1cec18cd8e1
- https://git.kernel.org/stable/c/838cab267ce9a975776e022f25094f8cbe1625d2
- https://git.kernel.org/stable/c/e5bc3658da9c8a535e3fa5c0c875b2a456954e81
- https://git.kernel.org/stable/c/eb946595a58decdb4cab1b5f3c972ae66f41f1c8
- https://git.kernel.org/stable/c/fed1f662c9f9fd19eeab6c01966b7b5a33804420
Raw JSON (NVD)
Show
{
"id": "CVE-2026-90348",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "e5bc3658da9c8a535e3fa5c0c875b2a456954e81",
"versionType": "git"
},
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "fed1f662c9f9fd19eeab6c01966b7b5a33804420",
"versionType": "git"
},
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "838cab267ce9a975776e022f25094f8cbe1625d2",
"versionType": "git"
},
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "eb946595a58decdb4cab1b5f3c972ae66f41f1c8",
"versionType": "git"
},
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "152e894e90716163c646d70f86b3afeb70442783",
"versionType": "git"
},
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "7039825a7479df637c4f5d546cb0e1cec18cd8e1",
"versionType": "git"
},
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "045d1bfb72d2631ab9ec74afa491aa788ebb57aa",
"versionType": "git"
},
{
"status": "affected",
"version": "3f14b73c38431a6a1ed24de568e18ed89b7082e2",
"lessThan": "4f25071afe9218aaae1c63fbf75e229aa6405319",
"versionType": "git"
}
],
"programFiles": [
"drivers/net/wireless/ath/ath10k/snoc.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "5.5"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "5.5",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver",
"lessThanOrEqual": "5.10.*"
},
{
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver",
"lessThanOrEqual": "5.15.*"
},
{
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/net/wireless/ath/ath10k/snoc.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-09-17T17:17:33.553",
"references": [
{
"url": "https://git.kernel.org/stable/c/045d1bfb72d2631ab9ec74afa491aa788ebb57aa",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/152e894e90716163c646d70f86b3afeb70442783",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/4f25071afe9218aaae1c63fbf75e229aa6405319",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/7039825a7479df637c4f5d546cb0e1cec18cd8e1",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/838cab267ce9a975776e022f25094f8cbe1625d2",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/e5bc3658da9c8a535e3fa5c0c875b2a456954e81",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/eb946595a58decdb4cab1b5f3c972ae66f41f1c8",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/fed1f662c9f9fd19eeab6c01966b7b5a33804420",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath10k: snoc: use memcpy_fromio() for MSA ramdump\n\nOn WCN3990/SNOC the MSA region is mapped with devm_memremap(MEMREMAP_WT).\nOn arm64 such a mapping is not Normal-cacheable, so unaligned accesses to\nit are not permitted. ath10k_msa_dump_memory() copies the region with a\nplain memcpy(), whose optimized __pi_memcpy_generic implementation issues\nwide/unaligned loads. This triggers an alignment fault (FSC=0x21) Oops in\nath10k_snoc_fw_crashed_dump() while collecting the devcoredump:\n\n Unable to handle kernel paging request ... FSC=0x21: alignment fault\n pc : __pi_memcpy_generic\n lr : ath10k_snoc_fw_crashed_dump [ath10k_snoc]\n\nThe Oops both leaves the firmware RAM dump buffer zeroed (no dump is\ncaptured) and crashes the kernel, which in turn breaks modem SSR\nrecovery.\n\nUse memcpy_fromio(), which only performs accesses that are valid for such\na device-memory mapping. The generic memcpy_fromio() implementation aligns\nthe source before issuing word-sized reads and stores the destination with\nput_unaligned(), so it is also safe for the coherent DMA allocation used on\nthe non-reserved-memory path. ath11k and ath12k use the same pattern\nwhen copying target memory into crash dumps, so call it unconditionally\nhere too.\nThe MEMREMAP_WT pointer is a plain void *, so an explicit __iomem cast is\nneeded; use __force to keep sparse happy.\n\nTested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.3.7.c5-00107-QCAHLSWMTPL-1"
}
],
"lastModified": "2026-09-17T17:17:33.553",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}