Executive brief
The Atmel ECC crypto driver in the Linux kernel failed to validate that a cached public key exists before performing hardware-accelerated ECDH operations. An attacker could trigger ECDH computations with an uninitialized private key, potentially leading to cryptographic failures or key misuse in applications relying on this acceleration.
Technical details
The vulnerability exists in the atmel-ecc crypto driver's atmel_ecdh_compute_shared_secret() function. The function uses a private key stored in the Atmel ECC hardware device, but the corresponding public key is only cached after atmel_ecdh_set_secret() successfully generates a private key for the current crypto transform (tfm). The compute_shared_secret path did not validate that a public key was cached before proceeding, unlike the related atmel_ecdh_generate_public_key() function which already had this check. This allows a local attacker to call atmel_ecdh_compute_shared_secret() without a properly initialized public key, causing the device to use a private key not generated for the current tfm. The fix adds an EINVAL return check if no public key context is present, preventing mismatched key usage.
Affected products
- Linux Linux kernel all versions prior to patch (upstream commit f240f9b588f4e2de89822adebf560a96b5d263ed)
Timeline
- 2026-09-17: disclosed
- 2026-06-11: patched: Upstream commit f240f9b588f4e2de89822adebf560a96b5d263ed
- 2026-09-14: other: Backported to stable kernels