Re: [PATCH 2/2] scsi: target: use constant-time crypto_memneq for CHAP digests
Lee Duncan <[email protected]> Fri, 5 Jun 2026 09:04:34 -0700
| Newsgroups | org.kernel.vger.target-devel,org.kernel.vger.linux-scsi |
|---|---|
| Message-ID | <CAPj3X_WHMQZTZ7UBv99_H5Gv8UVxcKzgdzW2OWv+ez2ocwfp_g@mail.gmail.com> |
On Fri, Jun 5, 2026 at 5:32 AM David Disseldorp <[email protected]> wrote: > > A constant-time memory comparison is more suitable than plain memcmp() > for authentication digest comparison. > CHAP digests use an authenticator-provided random challenge, so any > timing side-channel shouldn't be easily exploitable. > > Reported-by: Sashiko (gemini/gemini-3.1-pro-preview) > Link: https://sashiko.dev/#/patchset/20260521151121.808477-1-hossu.alexandru%40gmail.com > Signed-off-by: David Disseldorp <[email protected]> > --- > drivers/target/iscsi/iscsi_target_auth.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c > index 5858cc3089796..f3c0cdd318300 100644 > --- a/drivers/target/iscsi/iscsi_target_auth.c > +++ b/drivers/target/iscsi/iscsi_target_auth.c > @@ -9,6 +9,7 @@ > ******************************************************************************/ > > #include <crypto/hash.h> > +#include <crypto/utils.h> > #include <linux/kernel.h> > #include <linux/string.h> > #include <linux/err.h> > @@ -408,7 +409,7 @@ static int chap_server_compute_hash( > pr_debug("[server] %s Server Digest: %s\n", > chap->digest_name, response); > > - if (memcmp(server_digest, client_digest, chap->digest_size) != 0) { > + if (crypto_memneq(server_digest, client_digest, chap->digest_size)) { > pr_debug("[server] %s Digests do not match!\n\n", > chap->digest_name); > goto out; > -- > 2.51.0 > > Reviewed-by: Lee Duncan <[email protected]>