From: Eric Biggers <ebiggers3@gmail.com>
To: Kees Cook <keescook@chromium.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
Giovanni Cabiddu <giovanni.cabiddu@intel.com>,
Arnd Bergmann <arnd@arndb.de>,
"Gustavo A. R. Silva" <gustavo@embeddedor.com>,
Mike Snitzer <snitzer@redhat.com>,
Eric Biggers <ebiggers@google.com>,
qat-linux@intel.com, linux-kernel@vger.kernel.org,
dm-devel@redhat.com, linux-crypto@vger.kernel.org,
Lars Persson <larper@axis.com>,
Tim Chen <tim.c.chen@linux.intel.com>,
Alasdair Kergon <agk@redhat.com>, Rabin Vincent <rabinv@axis.com>
Subject: Re: [dm-devel] [PATCH v5 10/11] crypto: ahash: Remove VLA usage for AHASH_REQUEST_ON_STACK
Date: Tue, 17 Jul 2018 09:43:58 -0700 [thread overview]
Message-ID: <20180717164358.GC75957@gmail.com> (raw)
In-Reply-To: <20180717042150.37761-11-keescook@chromium.org>
On Mon, Jul 16, 2018 at 09:21:49PM -0700, Kees Cook wrote:
> In the quest to remove all stack VLA usage from the kernel[1], this caps
> the ahash request size similar to the other limits and adds a sanity
> check at initialization. AHASH_REQUEST_ON_STACK is special, though: it
> is only ever used for shash-wrapped ahash, so its size is bounded only
> by non-async hashes. A manual inspection of this shows the largest to be:
> sizeof(struct shash_desc) + SHASH_MAX_DESCSIZE
>
> [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com
>
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
> crypto/shash.c | 9 ++++++++-
> include/crypto/hash.h | 10 +++++++++-
> 2 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/crypto/shash.c b/crypto/shash.c
> index 8d4746b14dd5..e344560458cb 100644
> --- a/crypto/shash.c
> +++ b/crypto/shash.c
> @@ -355,6 +355,7 @@ int crypto_init_shash_ops_async(struct crypto_tfm *tfm)
> struct crypto_ahash *crt = __crypto_ahash_cast(tfm);
> struct crypto_shash **ctx = crypto_tfm_ctx(tfm);
> struct crypto_shash *shash;
> + size_t reqsize;
>
> if (!crypto_mod_get(calg))
> return -EAGAIN;
> @@ -365,6 +366,12 @@ int crypto_init_shash_ops_async(struct crypto_tfm *tfm)
> return PTR_ERR(shash);
> }
>
> + reqsize = sizeof(struct shash_desc) + crypto_shash_descsize(shash);
> + if (WARN_ON(reqsize > AHASH_MAX_REQSIZE)) {
> + crypto_mod_put(calg);
> + return -EINVAL;
> + }
'crypto_free_shash(shash);' instead of 'crypto_mod_put(calg);'
- Eric
next prev parent reply other threads:[~2018-07-17 16:43 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-17 4:21 [PATCH v5 00/11] crypto: Remove VLA usage Kees Cook
2018-07-17 4:21 ` Kees Cook
2018-07-17 4:21 ` [PATCH v5 01/11] crypto: xcbc: " Kees Cook
2018-07-17 6:35 ` Herbert Xu
2018-07-17 4:21 ` [PATCH v5 02/11] crypto: cbc: " Kees Cook
2018-07-17 4:21 ` [PATCH v5 03/11] crypto: shash: " Kees Cook
2018-07-17 4:21 ` [PATCH v5 04/11] dm integrity: " Kees Cook
2018-07-17 4:21 ` Kees Cook
2018-07-17 4:21 ` [PATCH v5 05/11] crypto: ahash: " Kees Cook
2018-07-17 4:21 ` Kees Cook
2018-07-17 16:39 ` [dm-devel] " Eric Biggers
2018-07-17 20:07 ` Kees Cook
2018-07-17 23:12 ` Eric Biggers
2018-07-19 3:14 ` Kees Cook
2018-07-17 4:21 ` [PATCH v5 06/11] dm verity fec: " Kees Cook
2018-07-17 4:21 ` [PATCH v5 07/11] crypto alg: Introduce generic max blocksize and alignmask Kees Cook
2018-07-17 4:21 ` Kees Cook
2018-07-17 4:21 ` [PATCH v5 08/11] crypto: qat: Remove VLA usage Kees Cook
2018-07-17 4:21 ` [PATCH v5 09/11] crypto: shash: Remove VLA usage in unaligned hashing Kees Cook
2018-07-17 4:21 ` [PATCH v5 10/11] crypto: ahash: Remove VLA usage for AHASH_REQUEST_ON_STACK Kees Cook
2018-07-17 16:43 ` Eric Biggers [this message]
2018-07-17 20:11 ` [dm-devel] " Kees Cook
2018-07-17 4:21 ` [PATCH v5 11/11] crypto: skcipher: Remove VLA usage for SKCIPHER_REQUEST_ON_STACK Kees Cook
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=20180717164358.GC75957@gmail.com \
--to=ebiggers3@gmail.com \
--cc=agk@redhat.com \
--cc=arnd@arndb.de \
--cc=dm-devel@redhat.com \
--cc=ebiggers@google.com \
--cc=giovanni.cabiddu@intel.com \
--cc=gustavo@embeddedor.com \
--cc=herbert@gondor.apana.org.au \
--cc=keescook@chromium.org \
--cc=larper@axis.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=qat-linux@intel.com \
--cc=rabinv@axis.com \
--cc=snitzer@redhat.com \
--cc=tim.c.chen@linux.intel.com \
/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.