Executive brief
The Linux kernel's Keem Bay cryptocurrency accelerator driver contains a bug in its error recovery path during device initialization. When skcipher algorithm registration fails, the code attempts to unregister previously registered AEAD algorithms but uses the wrong array size, potentially leaving algorithms in an inconsistent state and causing initialization failures.
Technical details
The vulnerability is a logic error in the register_aes_algs() function within drivers/crypto/intel/keembay/keembay-ocs-aes-core.c. The function registers AEAD algorithms first, then skcipher algorithms. If skcipher registration fails, it attempts to unwind by calling crypto_engine_unregister_aeads() with ARRAY_SIZE(algs) (the skcipher array size) instead of ARRAY_SIZE(algs_aead) (the AEAD array size). This causes the unregister function to iterate over the wrong number of entries, potentially leaving some AEAD algorithms in a registered state. The fix changes the unwind path to use the correct array size constant. No authentication or network access is required; this affects all kernel systems using the Keem Bay crypto driver during initialization.
Affected products
- Linux Linux Kernel
Timeline
- 2026-09-17: disclosed
- 2026-06-24: patched