CVE-2026-45900: crypto: caam - fix netdev memory leak in dpaa2_caam_probe
In the Linux kernel, the following vulnerability has been resolved:
crypto: caam - fix netdev memory leak in dpaa2caamprobe
When commit 0e1a4d427f58 ("crypto: caam: Unembed netdev structure in dpaa2") converted embedded netdevice to dynamically allocated pointers, it added cleanup in dpaa2dpsecidisable() but missed adding cleanup in dpaa2dpsecifree() for error paths.
This causes memory leaks when dpaa2dpsecidpiosetup() fails during probe due to DPIO devices not being ready yet. The kernel's deferred probe mechanism handles the retry successfully, but the netdevs allocated during the failed probe attempt are never freed, resulting in kmemleak reports showing multiple leaked netdev-related allocations all traced back to dpaa2caamprobe().
Fix this by preserving the CPU mask of allocated netdevs during setup and using it for cleanup in dpaa2dpsecifree(). This approach ensures that only the CPUs that actually had netdevs allocated will be cleaned up, avoiding potential issues with CPU hotplug scenarios.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernelto a version that resolves this vulnerability.Patch 0e1a4d427f58
Event History
Frequently Asked Questions
What systems are exposed to this leak?
Systems using the Linux kernel CAAM DPAA2 driver are affected when dpaa2_caam_probe() encounters a failure in dpaa2_dpseci_dpio_setup(). The described trigger is DPIO devices not being ready during driver probing.
Does the failed probe prevent the driver from eventually working?
No. The kernel deferred-probe mechanism retries the probe successfully, but netdev allocations from the failed attempt are not freed and remain leaked.
How can I tell whether this has occurred?
Kmemleak can report multiple leaked netdev-related allocations whose stack traces lead back to dpaa2_caam_probe().
What is the practical impact?
The issue causes kernel memory leakage on failed probe attempts. Its CVSS vector requires local access and low privileges, with availability impact only.