CVE-2026-93155: crypto: keembay - Fix AEAD unregister count in error path
In the Linux kernel, the following vulnerability has been resolved:
crypto: keembay - Fix AEAD unregister count in error path
registeraesalgs() registers the AEAD algorithms before registering the skcipher algorithms. If skcipher registration fails, the function unwinds the earlier AEAD registration with cryptoengineunregisteraeads(), but it passes ARRAYSIZE(algs), which is the skcipher table size.
Use ARRAYSIZE(algsaead) for the AEAD unwind path so the unregister helper iterates over the same table that was registered. Also clarify the nearby comment: the crypto registration helpers clean up algorithms registered within the same call, while this function must still unwind earlier successful registration steps.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Modify the AEAD unregister/error unwind path to iterate over the AEAD algorithm table using ARRAY_SIZE(algs_aead), so it matches the AEAD algorithms registered earlier in register_aes_algs() and uses the correct table size during unregister helper cleanup.
Linux kernel crypto subsystem (crypto/keembay) Use ARRAY_SIZE(algs_aead) for the AEAD unwind path instead of ARRAY_SIZE(algs) = ARRAY_SIZE(algs_aead)
Event History
Frequently Asked Questions
Under what condition is the faulty cleanup path reached?
It is reached when register_aes_algs() has successfully registered the AEAD algorithms but registration of the skcipher algorithms subsequently fails.
What is the practical effect of the fix?
The fix makes the AEAD unregister helper use the AEAD algorithm table size rather than the skcipher table size, so the earlier AEAD registration is unwound using the same table that was registered.
Does this affect normal successful algorithm registration?
The described issue is specifically in the error-unwind path after skcipher registration fails. The provided information does not indicate an issue when both AEAD and skcipher registration succeed.