From: Eric Biggers <ebiggers@kernel.org>
To: linux-crypto@vger.kernel.org
Cc: stable@vger.kernel.org
Subject: [PATCH v2 4/7] crypto: arm64/aes-neonbs - don't access already-freed walk.iv
Date: Tue, 9 Apr 2019 23:46:32 -0700 [thread overview]
Message-ID: <20190410064635.11813-5-ebiggers@kernel.org> (raw)
In-Reply-To: <20190410064635.11813-1-ebiggers@kernel.org>
From: Eric Biggers <ebiggers@google.com>
If the user-provided IV needs to be aligned to the algorithm's
alignmask, then skcipher_walk_virt() copies the IV into a new aligned
buffer walk.iv. But skcipher_walk_virt() can fail afterwards, and then
if the caller unconditionally accesses walk.iv, it's a use-after-free.
xts-aes-neonbs doesn't set an alignmask, so currently it isn't affected
by this despite unconditionally accessing walk.iv. However this is more
subtle than desired, and unconditionally accessing walk.iv has caused a
real problem in other algorithms. Thus, update xts-aes-neonbs to start
checking the return value of skcipher_walk_virt().
Fixes: 1abee99eafab ("crypto: arm64/aes - reimplement bit-sliced ARM/NEON implementation for arm64")
Cc: <stable@vger.kernel.org> # v4.11+
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
arch/arm64/crypto/aes-neonbs-glue.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/crypto/aes-neonbs-glue.c b/arch/arm64/crypto/aes-neonbs-glue.c
index 4737b6c6c5cf5..5144551177334 100644
--- a/arch/arm64/crypto/aes-neonbs-glue.c
+++ b/arch/arm64/crypto/aes-neonbs-glue.c
@@ -304,6 +304,8 @@ static int __xts_crypt(struct skcipher_request *req,
int err;
err = skcipher_walk_virt(&walk, req, false);
+ if (err)
+ return err;
kernel_neon_begin();
neon_aes_ecb_encrypt(walk.iv, walk.iv, ctx->twkey, ctx->key.rounds, 1);
--
2.21.0
next prev parent reply other threads:[~2019-04-10 6:48 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-10 6:46 [PATCH v2 0/7] crypto: fixes in preparation of new fuzz tests Eric Biggers
2019-04-10 6:46 ` [PATCH v2 1/7] crypto: lrw - don't access already-freed walk.iv Eric Biggers
2019-04-10 6:46 ` [PATCH v2 2/7] crypto: salsa20 " Eric Biggers
2019-04-10 19:18 ` Sasha Levin
2019-04-10 6:46 ` [PATCH v2 3/7] crypto: arm/aes-neonbs " Eric Biggers
2019-04-10 19:18 ` Sasha Levin
2019-04-10 6:46 ` Eric Biggers [this message]
2019-04-10 19:18 ` [PATCH v2 4/7] crypto: arm64/aes-neonbs " Sasha Levin
2019-04-10 6:46 ` [PATCH v2 5/7] crypto: gcm - fix incompatibility between "gcm" and "gcm_base" Eric Biggers
2019-04-10 19:18 ` Sasha Levin
2019-04-18 14:00 ` Herbert Xu
2019-04-18 18:41 ` Eric Biggers
2019-04-19 5:52 ` Herbert Xu
2019-04-10 6:46 ` [PATCH v2 6/7] crypto: ccm - fix incompatibility between "ccm" and "ccm_base" Eric Biggers
2019-04-10 19:18 ` Sasha Levin
2019-04-18 14:03 ` Herbert Xu
2019-04-10 6:46 ` [PATCH v2 7/7] crypto: vmx - return correct error code on failed setkey Eric Biggers
2019-04-10 18:08 ` [PATCH v2 0/7] crypto: fixes in preparation of new fuzz tests Ard Biesheuvel
2019-04-18 14:24 ` Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190410064635.11813-5-ebiggers@kernel.org \
--to=ebiggers@kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.