{"id":"CVE-2026-74279","state":"PUBLISHED","title":"crypto: cavium/cpt - fix DMA cleanup using wrong loop index","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: cavium/cpt - fix DMA cleanup using wrong loop index\n\nThe sg_cleanup error path used list[i] instead of list[j] when unmapping\nDMA buffers, leaking successfully mapped entries and repeatedly unmapping\nthe failed one.","publishedAt":"2026-08-15T05:57:50.131Z","updatedAt":"2026-10-16T18:55:29.607Z","severity":{"score":10,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"23c6174e48f66fc10b998b0acdb406cb0caf5c80","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"23d3a7e896a1fe2d7a6bcb42f093948b79f8a198","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"28141f95ae93b18f9bfde953cb787fcb151fb9da","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"8afd1007ef79898a6e010eaade97097e49405fce","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"3b8a1e1f4e4071a62b20374028744e8cc8310d48","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"fb4d57b83356d4bd411b45ede3024e0ff42c9b5e","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"d319b83b97b3585550d9ae592dfa78c755b6129e","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"9dbf173bd32d5f81b005008b682bfb50aa093455","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/crypto/cavium/cpt/cptvf_reqmanager.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.11","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/crypto/cavium/cpt/cptvf_reqmanager.c"]}],"references":["https://git.kernel.org/stable/c/23c6174e48f66fc10b998b0acdb406cb0caf5c80","https://git.kernel.org/stable/c/23d3a7e896a1fe2d7a6bcb42f093948b79f8a198","https://git.kernel.org/stable/c/28141f95ae93b18f9bfde953cb787fcb151fb9da","https://git.kernel.org/stable/c/8afd1007ef79898a6e010eaade97097e49405fce","https://git.kernel.org/stable/c/3b8a1e1f4e4071a62b20374028744e8cc8310d48","https://git.kernel.org/stable/c/fb4d57b83356d4bd411b45ede3024e0ff42c9b5e","https://git.kernel.org/stable/c/d319b83b97b3585550d9ae592dfa78c755b6129e","https://git.kernel.org/stable/c/9dbf173bd32d5f81b005008b682bfb50aa093455"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74279.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74279","state":"PUBLISHED","datePublished":"2026-08-15T05:57:50.131Z","dateUpdated":"2026-10-16T18:55:29.607Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.880Z"},"containers":{"cna":{"title":"crypto: cavium/cpt - fix DMA cleanup using wrong loop index","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: cavium/cpt - fix DMA cleanup using wrong loop index\n\nThe sg_cleanup error path used list[i] instead of list[j] when unmapping\nDMA buffers, leaking successfully mapped entries and repeatedly unmapping\nthe failed one."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"23c6174e48f66fc10b998b0acdb406cb0caf5c80","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"23d3a7e896a1fe2d7a6bcb42f093948b79f8a198","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"28141f95ae93b18f9bfde953cb787fcb151fb9da","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"8afd1007ef79898a6e010eaade97097e49405fce","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"3b8a1e1f4e4071a62b20374028744e8cc8310d48","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"fb4d57b83356d4bd411b45ede3024e0ff42c9b5e","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"d319b83b97b3585550d9ae592dfa78c755b6129e","versionType":"git"},{"version":"c694b233295b99c33dd5ac28aede9f171f5a6862","status":"affected","lessThan":"9dbf173bd32d5f81b005008b682bfb50aa093455","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/crypto/cavium/cpt/cptvf_reqmanager.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.11","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/crypto/cavium/cpt/cptvf_reqmanager.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/23c6174e48f66fc10b998b0acdb406cb0caf5c80"},{"url":"https://git.kernel.org/stable/c/23d3a7e896a1fe2d7a6bcb42f093948b79f8a198"},{"url":"https://git.kernel.org/stable/c/28141f95ae93b18f9bfde953cb787fcb151fb9da"},{"url":"https://git.kernel.org/stable/c/8afd1007ef79898a6e010eaade97097e49405fce"},{"url":"https://git.kernel.org/stable/c/3b8a1e1f4e4071a62b20374028744e8cc8310d48"},{"url":"https://git.kernel.org/stable/c/fb4d57b83356d4bd411b45ede3024e0ff42c9b5e"},{"url":"https://git.kernel.org/stable/c/d319b83b97b3585550d9ae592dfa78c755b6129e"},{"url":"https://git.kernel.org/stable/c/9dbf173bd32d5f81b005008b682bfb50aa093455"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","baseScore":10,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - On Cavium Thunder appliances the CPT VF skcipher driver is selected for in-kernel crypto on network-facing workloads (IPsec/xfrm ESP decrypt, NFS/RPC GSS-Kerberos), so remote peers can drive setup_sgio_components() by sending traffic that triggers hardware-accelerated AES/DES operations.\nAC:L - An attacker can reliably force the error path by fragmenting crypto buffers to raise incnt/outcnt and flooding concurrent encrypt/decrypt requests to exhaust IOMMU IOVAs, causing dma_map_single() to fail mid-loop; no uncontrollable victim state or race is required.\nPR:N - Exploitation requires no root or capabilities on the victim host; remote network peers sending IPsec or authenticated RPC traffic, or any local process using the kernel crypto API via AF_ALG sockets, can trigger the faulty DMA cleanup without admin privileges.\nUI:N - Exploitation is fully attacker-driven through automated network traffic or programmatic crypto requests and does not require any victim user action such as opening files or mounting filesystems.\nS:C - Leaked DMA mappings let the CPT PCI function continue bus-mastering kernel pages after software teardown, bypassing intended kernel DMA lifecycle and IOMMU-enforced device isolation boundaries when stale mappings target freed or repurposed memory.\nC:H - Unmapping failures leave active DMA translations while dma_addr metadata is cleared, allowing the CPT hardware to read kernel memory from freed or reallocated pages, providing a memory-corruption primitive that can disclose sensitive data.\nI:H - Stale bidirectional DMA mappings combined with bogus unmaps on DMA_MAPPING_ERROR can corrupt IOMMU state and let the accelerator write into kernel pages no longer owned by the request, enabling control of kernel memory contents.\nA:H - Repeated dma_unmap_single() on DMA_MAPPING_ERROR triggers WARN_ON in iommu_dma_unmap_phys, and accumulating leaked IOMMU mappings can exhaust DMA resources or panic the kernel during subsequent crypto operations."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:45:20.085Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-74279","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T18:51:59.460893Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T18:55:29.607Z"}}]}}}