Hi Gabriele, Adrian, Tadeusz, Aidan, during testing of my algif_aead patch with the different GCM implementations I am able to trigger a kernel crash from user space using __driver-gcm-aes- aesni. As I hope that algif_aead is going to be included, unprivileged userspace would then reliably crash the kernel -- with the current kernel code, userspace has no interface to trigger the issue. Looking into the kernel code I think I see where the issue is. The crash happens when setkey is invoked. The kernel crypto API defines setkey as the following: static inline int crypto_aead_setkey(struct crypto_aead *tfm, const u8 *key, unsigned int keylen) { struct aead_tfm *crt = crypto_aead_crt(tfm); return crt->setkey(crt->base, key, keylen); } This means that the kernel crypto API expects that ciphers always implement a setkey callback. However, __driver-gcm-aes-aesni does not implement a setkey: .aead = { .encrypt = __driver_rfc4106_encrypt, .decrypt = __driver_rfc4106_decrypt, }, As I am not sure what the purpose of __driver-gcm-aes-aesni is (only a backend for RFC4106 GCM or a regular cipher), I did not yet create a patch. IMHO there are two solutions: - either create a valid setkey callback so that a key is set - or create a noop setkey that returns -EOPNOTSUPP which effectively disables that cipher for regular consumption. Note, if it is only a backend for the RFC4106 implementation, may I ask why __driver-gcm-aes-aesni is implemented as a separate cipher that is registered with the kernel crypto API? -- Ciao Stephan -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html