CVE-2026-74279 PUBLISHED

crypto: cavium/cpt - fix DMA cleanup using wrong loop index

Assigner: Linux
Reserved: 15.08.2026 Published: 15.08.2026 Updated: 17.08.2026

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

crypto: cavium/cpt - fix DMA cleanup using wrong loop index

The sg_cleanup error path used list[i] instead of list[j] when unmapping DMA buffers, leaking successfully mapped entries and repeatedly unmapping the failed one.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS Score: 10

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. AC: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. PR: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. UI: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. S: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. C: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. I: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. A: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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to 23c6174e48f66fc10b998b0acdb406cb0caf5c80 (excl.)
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to 23d3a7e896a1fe2d7a6bcb42f093948b79f8a198 (excl.)
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to 28141f95ae93b18f9bfde953cb787fcb151fb9da (excl.)
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to 8afd1007ef79898a6e010eaade97097e49405fce (excl.)
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to 3b8a1e1f4e4071a62b20374028744e8cc8310d48 (excl.)
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to fb4d57b83356d4bd411b45ede3024e0ff42c9b5e (excl.)
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to d319b83b97b3585550d9ae592dfa78c755b6129e (excl.)
  • affected from c694b233295b99c33dd5ac28aede9f171f5a6862 to 9dbf173bd32d5f81b005008b682bfb50aa093455 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.11 is affected
  • unaffected from 0 to 4.11 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.97 to 6.12.* (incl.)
  • unaffected from 6.18.40 to 6.18.* (incl.)
  • unaffected from 7.1.5 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References