From patchwork Tue Nov 7 02:37:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Safonov X-Patchwork-Id: 162246 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:8f47:0:b0:403:3b70:6f57 with SMTP id j7csp3058844vqu; Mon, 6 Nov 2023 18:37:45 -0800 (PST) X-Google-Smtp-Source: AGHT+IFy/mOOviK6Mpub8i3drDGPlVYgVaDdEMGhvTsQmBJzIW77Y7eeT7t/UXldzUynZoepTRQl X-Received: by 2002:a0d:d2c3:0:b0:594:e148:3c42 with SMTP id u186-20020a0dd2c3000000b00594e1483c42mr10901017ywd.52.1699324664863; Mon, 06 Nov 2023 18:37:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699324664; cv=none; d=google.com; s=arc-20160816; b=Z0ptOAqYYNl/h5JeqDV1vdj0AxfQ0wDT++/LeSU+HrI0eYBvFsYWUycdN0v/LruK4p b4QVV8ATNnmBsZcEFYQrW53OOAYwecauigYhvwnL58Zw+HYZvlz+0KOjFyf5h+7FK04w xAGMa+Je2+5hk/20iF4SFvkBf4aciHt1w25qzitlqTLwt3/jdfoi0+EX8O+pWh+EcWec Nf9KeHgHndlS8vyz5aCDHHBAHZNh71xIJuSbLsUEvtvkFmfFdHYkbExHYlzaqK/OYp/V SGVE2+6DrImt8ba5xmOF9W54BQ7ZDS66Zdpgr8EhViL0kW3gUQQJyeONK55TfQyqEXJE zWeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=G2ag1vqlZRaktWdg6szgML9cajZnEi6ZYK3MTjrbTdg=; fh=HKVNhEeSZ15PBqT3br0W23UayI2xe4oLWBu2Kxs52sI=; b=vcaImEZD9zOtnwkZp+gVB8vABE1GaTB8q9jehxLNubYSf33BhiARZ+TzI9t4/Ryv7C XkWGb/CHyRNyoY9Lq4lCAcImDu0bEH96e3ZHJ47Zp9kUEHOvdGFfK2EyE4b0bx5bz6C9 NUCJ6mPl99u3Mx/J6ib3lW3Qohv5MQUVYW2PnZRnGVyJCfs5/cA36l93+4/KFEGGOUZs eTaLXswcKxsK0ZX1OwmtAHSdiRSdZtguj2toaSkC4SZ/2yCxU9DQRix2jTs02VtV4dGe rG52etzzAdssiEeoDNND2aR8ny4FlstHs8SZb4pURa6owtTqL52wp29q6zTXTXaElNfD RYeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@arista.com header.s=google header.b=JlfLPzha; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=arista.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id cm15-20020a056a020a0f00b005b8f1c4aa49si997969pgb.895.2023.11.06.18.37.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Nov 2023 18:37:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@arista.com header.s=google header.b=JlfLPzha; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=arista.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 14782810682F; Mon, 6 Nov 2023 18:37:44 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233293AbjKGChc (ORCPT + 33 others); Mon, 6 Nov 2023 21:37:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229646AbjKGChb (ORCPT ); Mon, 6 Nov 2023 21:37:31 -0500 Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2B1C7129 for ; Mon, 6 Nov 2023 18:37:27 -0800 (PST) Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-2c5056059e0so74173551fa.3 for ; Mon, 06 Nov 2023 18:37:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=google; t=1699324645; x=1699929445; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=G2ag1vqlZRaktWdg6szgML9cajZnEi6ZYK3MTjrbTdg=; b=JlfLPzha0yJfaAZPfxhTA4qtghQ2mVNhXKnfKH4oLwhrZ5J4nCBj85RbmFTYcrIk3D PSV89sEKZa3FL/pYfI2dG/2W47xLvaMSX0JqrT9PelxlH9gmfDMGl/lJ8sEpe5ef+DiJ HSVeCntlxRdN3GyC3R/7tfvtcy6RNZws7bp3m/rO4ls/SdOLBINJMRT6ZyQZSW1c+UbT JNjFHuaXNCLG8wHl1vM2sWEW9szBELg1PwHJx4zr8HtBYPShh1kg+F8CuGHHgGunZNQC ZqpeAK+HFahN7OInPsPbCiA9PCYsW9RPZRppA0qYAT4pl8U8AZ+6mViZuBOfDLAyCKk6 S8qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699324645; x=1699929445; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=G2ag1vqlZRaktWdg6szgML9cajZnEi6ZYK3MTjrbTdg=; b=caeArhQ4AM8zxa01kVv16ZFBF5adVWVcr1M14zWDN/mzpqh/tMPeuWots89g5nLKfZ tvaFuHO7h/8S+9mkairxzQp0fTrZy0QDDzf/DCatq2g3kO+bvtQ4GLravFNFr3en6eeq 9svtoOI+QFm6J30kXLEJLYlqNjW56RMC2GT2rooWY2bLH/SJUiywqKL6OpYsdWV0UFQN C2IjgZcKZQ78QYqf4tOLAKosUG6FVmxzGVYuj1KtH3kh5W2z6/F7Ocx9FXNxu5JE/z1r vpNp1SCduiZRQexLmRZemCxfqLGUS1ZsOr/eAAiNiJc9HPncL/zwH157eDOKmFLENKem Bw6Q== X-Gm-Message-State: AOJu0Yya4a9pF9pL9chF/or+dD6ASaXnzqN/tFfz0/edArPGAfnCeaP5 po2EeNPwVdd3dEtIPPnQ9/870g== X-Received: by 2002:a2e:b0dc:0:b0:2c5:174b:9a53 with SMTP id g28-20020a2eb0dc000000b002c5174b9a53mr23870747ljl.26.1699324645325; Mon, 06 Nov 2023 18:37:25 -0800 (PST) Received: from Mindolluin.ire.aristanetworks.com ([217.173.96.166]) by smtp.gmail.com with ESMTPSA id s7-20020a05600c45c700b003fc16ee2864sm13949594wmo.48.2023.11.06.18.37.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Nov 2023 18:37:24 -0800 (PST) From: Dmitry Safonov To: Herbert Xu Cc: linux-kernel@vger.kernel.org, Dmitry Safonov , David Ahern , "David S. Miller" , Dmitry Safonov <0x7f454c46@gmail.com>, Eric Biggers , Eric Dumazet , Francesco Ruggeri , Jakub Kicinski , Paolo Abeni , Salam Noureddine , netdev@vger.kernel.org, linux-crypto@vger.kernel.org Subject: [PATCH] crypto: ahash - Set using_shash for cloned ahash wrapper over shash Date: Tue, 7 Nov 2023 02:37:17 +0000 Message-ID: <20231107023717.820093-1-dima@arista.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 06 Nov 2023 18:37:44 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781871059403540399 X-GMAIL-MSGID: 1781871059403540399 The cloned child of ahash that uses shash under the hood should use shash helpers (like crypto_shash_setkey()). The following panic may be observed on TCP-AO selftests: > ================================================================== > BUG: KASAN: wild-memory-access in crypto_mod_get+0x1b/0x60 > Write of size 4 at addr 5d5be0ff5c415e14 by task connect_ipv4/1397 > > CPU: 0 PID: 1397 Comm: connect_ipv4 Tainted: G W 6.6.0+ #47 > Call Trace: > > dump_stack_lvl+0x46/0x70 > kasan_report+0xc3/0xf0 > kasan_check_range+0xec/0x190 > crypto_mod_get+0x1b/0x60 > crypto_spawn_alg+0x53/0x140 > crypto_spawn_tfm2+0x13/0x60 > hmac_init_tfm+0x25/0x60 > crypto_ahash_setkey+0x8b/0x100 > tcp_ao_add_cmd+0xe7a/0x1120 > do_tcp_setsockopt+0x5ed/0x12a0 > do_sock_setsockopt+0x82/0x100 > __sys_setsockopt+0xe9/0x160 > __x64_sys_setsockopt+0x60/0x70 > do_syscall_64+0x3c/0xe0 > entry_SYSCALL_64_after_hwframe+0x46/0x4e > ================================================================== > general protection fault, probably for non-canonical address 0x5d5be0ff5c415e14: 0000 [#1] PREEMPT SMP KASAN > CPU: 0 PID: 1397 Comm: connect_ipv4 Tainted: G B W 6.6.0+ #47 > Call Trace: > > ? die_addr+0x3c/0xa0 > ? exc_general_protection+0x144/0x210 > ? asm_exc_general_protection+0x22/0x30 > ? add_taint+0x26/0x90 > ? crypto_mod_get+0x20/0x60 > ? crypto_mod_get+0x1b/0x60 > ? ahash_def_finup_done1+0x58/0x80 > crypto_spawn_alg+0x53/0x140 > crypto_spawn_tfm2+0x13/0x60 > hmac_init_tfm+0x25/0x60 > crypto_ahash_setkey+0x8b/0x100 > tcp_ao_add_cmd+0xe7a/0x1120 > do_tcp_setsockopt+0x5ed/0x12a0 > do_sock_setsockopt+0x82/0x100 > __sys_setsockopt+0xe9/0x160 > __x64_sys_setsockopt+0x60/0x70 > do_syscall_64+0x3c/0xe0 > entry_SYSCALL_64_after_hwframe+0x46/0x4e > > RIP: 0010:crypto_mod_get+0x20/0x60 Make sure that the child/clone has using_shash set when parent is an shash user. Fixes: 2f1f34c1bf7b ("crypto: ahash - optimize performance when wrapping shash") Cc: David Ahern Cc: "David S. Miller" Cc: Dmitry Safonov <0x7f454c46@gmail.com> Cc: Eric Biggers Cc: Eric Dumazet Cc: Francesco Ruggeri To: Herbert Xu Cc: Jakub Kicinski Cc: Paolo Abeni Cc: Salam Noureddine Cc: netdev@vger.kernel.org Cc: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Dmitry Safonov Reviewed-by: Eric Biggers --- crypto/ahash.c | 1 + 1 file changed, 1 insertion(+) base-commit: be3ca57cfb777ad820c6659d52e60bbdd36bf5ff diff --git a/crypto/ahash.c b/crypto/ahash.c index deee55f939dc..80c3e5354711 100644 --- a/crypto/ahash.c +++ b/crypto/ahash.c @@ -651,6 +651,7 @@ struct crypto_ahash *crypto_clone_ahash(struct crypto_ahash *hash) err = PTR_ERR(shash); goto out_free_nhash; } + nhash->using_shash = true; *nctx = shash; return nhash; }