From: Eric Biggers <ebiggers@kernel.org>
To: Thomas Huth <thuth@redhat.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>,
Steve French <sfrench@samba.org>,
Namjae Jeon <linkinjeon@kernel.org>,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
Paulo Alcantara <pc@manguebit.org>,
Ronnie Sahlberg <ronniesahlberg@gmail.com>,
Shyam Prasad N <sprasad@microsoft.com>,
Tom Talpey <tom@talpey.com>, Bharath SM <bharathsm@microsoft.com>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
linux-cifs@vger.kernel.org, samba-technical@lists.samba.org
Subject: Re: [PATCH 2/6] smb: clear the aes_cmac_key and aes_cmac_ctx when done
Date: Wed, 5 Aug 2026 14:12:11 -0700 [thread overview]
Message-ID: <20260805211211.GJ3438@quark> (raw)
In-Reply-To: <20260805143611.818559-3-thuth@redhat.com>
On Wed, Aug 05, 2026 at 04:36:05PM +0200, Thomas Huth wrote:
> From: Thomas Huth <thuth@redhat.com>
>
> Clear the local crypto-related structures via __cleanup() functions
> when we're done with them to avoid that sensitive data could leak on
> the stack.
>
> Note: cmac_ctx in ksmbd_sign_smb3_pdu() gets cleared in aes_cmac_final()
> already, so this does not need a __cleanup() marker.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> fs/smb/client/smb2transport.c | 4 ++--
> fs/smb/server/auth.c | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/fs/smb/client/smb2transport.c b/fs/smb/client/smb2transport.c
> index 1143ee52470a7..d23566da2ac81 100644
> --- a/fs/smb/client/smb2transport.c
> +++ b/fs/smb/client/smb2transport.c
> @@ -464,8 +464,8 @@ smb3_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server)
> unsigned char smb3_signature[SMB2_CMACAES_SIZE];
> struct kvec *iov = rqst->rq_iov;
> struct smb2_hdr *shdr = (struct smb2_hdr *)iov[0].iov_base;
> - struct aes_cmac_key cmac_key;
> - struct aes_cmac_ctx cmac_ctx;
> + struct aes_cmac_key cmac_key __cleanup(aes_cmac_zeroize_key);
> + struct aes_cmac_ctx cmac_ctx __cleanup(aes_cmac_zeroize_ctx);
> struct smb_rqst drqst;
> u8 key[SMB3_SIGN_KEY_SIZE];
This is another example of a driver that has never made much attempt at
key zeroization. Even considering just this function, the raw key is
still on the stack and not zeroized. But it is not just this function,
e.g. the smb2 code does the same. So yes, the '__cleanup' trick makes
zeroizing these structs easy enough that we might as well do it anyway,
but it would be nice to try to be a bit more comprehensive.
- Eric
next prev parent reply other threads:[~2026-08-05 21:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-05 14:36 [PATCH 0/6] crypto: Add __cleanup functions for zeroizing aes_cmac_key & aes_cmac_ctx Thomas Huth
2026-08-05 14:36 ` [PATCH 1/6] crypto: Provide wrapper functions for zeroizing aes_cmac_key and aes_cmac_ctx Thomas Huth
2026-08-05 20:37 ` Eric Biggers
2026-08-05 20:46 ` Eric Biggers
2026-08-05 14:36 ` [PATCH 2/6] smb: clear the aes_cmac_key and aes_cmac_ctx when done Thomas Huth
2026-08-05 21:12 ` Eric Biggers [this message]
2026-08-05 14:36 ` [PATCH 3/6] net/tcp-ao: clear the aes_cmac_key " Thomas Huth
2026-08-05 21:02 ` Eric Biggers
2026-08-06 13:06 ` Thomas Huth
2026-08-05 14:36 ` [PATCH 4/6] Bluetooth: SMP: " Thomas Huth
2026-08-05 20:46 ` Eric Biggers
2026-08-06 13:00 ` Thomas Huth
2026-08-05 14:36 ` [PATCH 5/6] lib/crypto: aes: Use _cleanup() for aes_cmac_key instead of memzero_explicit() Thomas Huth
2026-08-05 14:36 ` [PATCH 6/6] mac80211: fils_aead: Use _cleanup for aes_cmac_key instead of memzero_explicit Thomas Huth
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=20260805211211.GJ3438@quark \
--to=ebiggers@kernel.org \
--cc=bharathsm@microsoft.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=linkinjeon@kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pc@manguebit.org \
--cc=ronniesahlberg@gmail.com \
--cc=samba-technical@lists.samba.org \
--cc=senozhatsky@chromium.org \
--cc=sfrench@samba.org \
--cc=sprasad@microsoft.com \
--cc=thuth@redhat.com \
--cc=tom@talpey.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox