| From | Kamal Mostafa <> | Subject | [PATCH 3.19.y-ckt 092/128] crypto: talitos - Fix timing leak in ESP ICV verification | Date | Wed, 16 Dec 2015 09:38:52 -0800 |
| |
3.19.8-ckt12 -stable review patch. If anyone has any objections, please let me know.
------------------
From: David Gstir <david@sigma-star.at>
commit 79960943fdc114fd4583c9ab164b5c89da7aa601 upstream.
Using non-constant time memcmp() makes the verification of the authentication tag in the decrypt path vulnerable to timing attacks. Fix this by using crypto_memneq() instead.
Signed-off-by: David Gstir <david@sigma-star.at> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> [ kamal: backport to 3.19-stable: context ] Signed-off-by: Kamal Mostafa <kamal@canonical.com> --- drivers/crypto/talitos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index 0584c4e..181167f 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c @@ -870,7 +870,7 @@ static void ipsec_esp_decrypt_swauth_done(struct device *dev, icvdata = &edesc->link_tbl[0]; sg = sg_last(req->dst, edesc->dst_nents ? : 1); - err = memcmp(icvdata, (char *)sg_virt(sg) + sg->length - + err = crypto_memneq(icvdata, (char *)sg_virt(sg) + sg->length - ctx->authsize, ctx->authsize) ? -EBADMSG : 0; } -- 1.9.1
|