Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp88258pxp; Thu, 10 Mar 2022 23:20:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJwo2JGrVUIDbegSAvVpP2K8A9Werl1KlyEdMich4pC5R08702wz/cqa8FTn5hzRoVYqiGOF X-Received: by 2002:a17:907:968e:b0:6db:aed5:43c8 with SMTP id hd14-20020a170907968e00b006dbaed543c8mr369766ejc.636.1646983210615; Thu, 10 Mar 2022 23:20:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646983210; cv=none; d=google.com; s=arc-20160816; b=xm3aXpNbqxQ6h3N0TACFasskQmp2j/ygEZcvOXW0g0JWpWNcn16LeaV+LCyOxLHjfj 9NsvybctLy929kOPGMTPu6xJkbnZb/i2/kV5RMceCW8kL48af/4xp78TQ8cw+HLej8vt 3p7rEC8SWKPwJVC3dvrL1czXf3B0oSyTBMac49iwxLIHXcAzNYj29yl84yiFsrpOLlFh PYY9uL5ONEvEUOb4/U6Cbrkq0Ovl7lMYDMkfDuFOVVZNiPui73eBGFn453iRnSVzUZc6 PvO38XYNWdfinPVoKTIIIgkR7hUnxFHaZZsihks5fWnY3RgmgEQ8vB7E1mdqftHOGn6i BxtA== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WDjn2ANCbKXJC/IbPow3jEckMV0FHMm/T4wFWK2kk1U=; b=vr1/UbG4R6/To6JO0pnxG/mP04+k2kls9pyVKg8PEseuc31GgnxuNKcCSh/FG9KU8P g9jzwanhhj0+vXEvDg8t+JMk0zcayCWANMu2NwvdRpVcWeUYLk3vf6K/CYJ+Vas0qGji ZjSrbmCB9YcaWeuYFile+ZukkGqv2WAuJBkkzTHiUJtkaXuv6xKUMl/GAq+yp9LpAVzk XCgORpvXz4A3Rfla5nJio/TPp5KY6CYHunRVpfgaCnX4h6pO8rXhXExlHtdHNNZ6gEBg lN5Xa1GvFaG+Rijwuu4QNnLVue0Y0l5Tfj0k4GxU0Fr2veYlLRgZPDNvESEg8bA1A4QD MOsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=goI8TcgM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e8-20020a056402190800b0041657e8f60esi5890489edz.289.2022.03.10.23.19.48; Thu, 10 Mar 2022 23:20:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=goI8TcgM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344428AbiCJOsI (ORCPT + 99 others); Thu, 10 Mar 2022 09:48:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243929AbiCJOc3 (ORCPT ); Thu, 10 Mar 2022 09:32:29 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56EE4B0D03; Thu, 10 Mar 2022 06:30:52 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D088A61D23; Thu, 10 Mar 2022 14:30:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D898FC340EB; Thu, 10 Mar 2022 14:30:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1646922651; bh=2izHBbKePMU2Fb3LPgpGusKesTpyD1FWIKNwtBsOrao=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=goI8TcgMwM/4guN81o8IAiy+J936n/RiW5cA56XYFdZ1ZS4GzHiylsf+j4ZvnQ8fh 0YMKjN9/Yu6wWXGSyx0lHgVCeqd6m9OwH87Gn90zHAFa6eG8AhQSwZa2WQZHCY9isQ RgsGOx5sSr4fSDC1zPHxjKJ3jJHGsIL3yxogobJw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Josh Poimboeuf , Borislav Petkov Subject: [PATCH 5.15 09/58] x86/speculation: Warn about Spectre v2 LFENCE mitigation Date: Thu, 10 Mar 2022 15:18:58 +0100 Message-Id: <20220310140813.253102183@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220310140812.983088611@linuxfoundation.org> References: <20220310140812.983088611@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,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 From: Josh Poimboeuf commit eafd987d4a82c7bb5aa12f0e3b4f8f3dea93e678 upstream. With: f8a66d608a3e ("x86,bugs: Unconditionally allow spectre_v2=retpoline,amd") it became possible to enable the LFENCE "retpoline" on Intel. However, Intel doesn't recommend it, as it has some weaknesses compared to retpoline. Now AMD doesn't recommend it either. It can still be left available as a cmdline option. It's faster than retpoline but is weaker in certain scenarios -- particularly SMT, but even non-SMT may be vulnerable in some cases. So just unconditionally warn if the user requests it on the cmdline. [ bp: Massage commit message. ] Signed-off-by: Josh Poimboeuf Signed-off-by: Borislav Petkov Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/cpu/bugs.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -651,6 +651,7 @@ static inline const char *spectre_v2_mod static inline const char *spectre_v2_module_string(void) { return ""; } #endif +#define SPECTRE_V2_LFENCE_MSG "WARNING: LFENCE mitigation is not recommended for this CPU, data leaks possible!\n" #define SPECTRE_V2_EIBRS_EBPF_MSG "WARNING: Unprivileged eBPF is enabled with eIBRS on, data leaks possible via Spectre v2 BHB attacks!\n" #ifdef CONFIG_BPF_SYSCALL @@ -972,6 +973,7 @@ static void __init spectre_v2_select_mit break; case SPECTRE_V2_CMD_RETPOLINE_LFENCE: + pr_err(SPECTRE_V2_LFENCE_MSG); mode = SPECTRE_V2_LFENCE; break; @@ -1787,6 +1789,9 @@ static char *ibpb_state(void) static ssize_t spectre_v2_show_state(char *buf) { + if (spectre_v2_enabled == SPECTRE_V2_LFENCE) + return sprintf(buf, "Vulnerable: LFENCE\n"); + if (spectre_v2_enabled == SPECTRE_V2_EIBRS && unprivileged_ebpf_enabled()) return sprintf(buf, "Vulnerable: Unprivileged eBPF enabled\n");