Received: by 2002:a05:7412:8521:b0:e2:908c:2ebd with SMTP id t33csp2536983rdf; Mon, 6 Nov 2023 18:37:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IFApYg0H8+SJcaUun3Xncvd8NzC8jEQW4jRpZO7UNLdT1Pdcj2bvEbStNPNKTyyvxRpsdpt X-Received: by 2002:a17:90b:3592:b0:27c:ed8e:1840 with SMTP id mm18-20020a17090b359200b0027ced8e1840mr23213260pjb.10.1699324663490; Mon, 06 Nov 2023 18:37:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699324663; cv=none; d=google.com; s=arc-20160816; b=anmmszu4YjZgX/DRLzbTaM1YtugrrjChPGhg+cPJDarzXVoqeUKd/MOzgmRgjprQI/ H48Q2+gbX5udY7AKpJcdTKJ9neTLQvFhgeahM4Ar1AaOzZJaIo8pv+vDbPrrlnkciMkS kjm2iKb9weQkPyyz6NUhmM4iCurcQP5+9aKtamI4xLaNuTJsWJlONnhlF2w6I/qrBYqM YFzm3ijjneM9Wzc3h/6rbYUqcS6V4tSSgAUHPnPJS9csFeZBARZTW3T/i2isnoqZNgQN h0WOlA0emY2gnzPNkGYezS2RNO7o0Vrq23wpgW73EhpuRGezOguta7GnuffB+o/djwOH U7tQ== 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.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=arista.com Return-Path: Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id y17-20020a17090322d100b001c59b6ed118si9942154plg.157.2023.11.06.18.37.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Nov 2023 18:37:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; 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.38 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 fry.vger.email (Postfix) with ESMTP id DC25E803BEA5; Mon, 6 Nov 2023 18:37:40 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233284AbjKGChc (ORCPT + 99 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 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email 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 (fry.vger.email [0.0.0.0]); Mon, 06 Nov 2023 18:37:41 -0800 (PST) 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 --- crypto/ahash.c | 1 + 1 file changed, 1 insertion(+) 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; } base-commit: be3ca57cfb777ad820c6659d52e60bbdd36bf5ff -- 2.42.0