Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp582700pxp; Wed, 9 Mar 2022 08:34:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJw5O44mqfiupgI2h1HzYUkYOjA+tZa9P2+YOZIeMryO7sa30D+1PTw3HW+UMApt5t/380GK X-Received: by 2002:a17:906:584:b0:6b0:8987:90af with SMTP id 4-20020a170906058400b006b0898790afmr591152ejn.264.1646843642502; Wed, 09 Mar 2022 08:34:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646843642; cv=none; d=google.com; s=arc-20160816; b=WYFi24jh0u89BGRx1AaeSsKKcWAEB2r7Gfs26T1rNOebzPUFdPOsiVwCY6etPhjE8l mXH/wYTbjTAdkQzShi6PT2Ys0Nz7bcJfquRfbSXR/DaEeJfJhMcE2HTdTGkCvxwfG7qi bsyPIyO17dZ9IWHF/flB1qCkO9+AWRod2qZwczX26LmlFgXJG2kS2DkzPBIS5c8srDpW seOVun7XjDJ/Gj5IYk+Yd9VKosxpgwhYEDFzW8VdSjv5MtAU4M8wvTwgJUfjo+w2IvQJ YPXlRf5b8y+QIZtpZxNUrPpP17YI+jPlxUwRmIvIJk1vqMkKsSf/UhGAu9OHt8YauL5l eL3A== 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=30o+kBVdYIclXOE/MJkNen0QxOe+ym3R8cCGSi0UyWs=; b=PXLQWInPoPD8yRk2syXasObD1dSZ6VRJQ46ntF8enuNK9YRfiPFp7YddDsH3VD9bml MWagO1DM+TWT5yO1Gm9Y1oQmoWXXUnaXob+UlzRQU/usy0GoDrgZIL3mfsbueX+XF4Pg NNAbdps0OnzB7j5HrlvEsP9TeE+WEqY3Xxd7LuJKReZOcDCNvqIK6cI6bX6Vpcyat3Sr kEv1+qd6iAhk4nsTCoZiQqASbHqKq3vvBK3WOsziC/9i+l87yKdsdoqjYgZB9giq/wUQ LVpTWzQVhrIaCtkUZICgm9YYZMbaJyYPVhOepXxUA8RFisWW4iViUeWDfx5DFrIF/p1f 8eCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=1rRh9cDh; 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 c18-20020a170906171200b006d033a130fcsi1461624eje.728.2022.03.09.08.33.37; Wed, 09 Mar 2022 08:34:02 -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=1rRh9cDh; 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 S233234AbiCIQGW (ORCPT + 99 others); Wed, 9 Mar 2022 11:06:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234447AbiCIQFD (ORCPT ); Wed, 9 Mar 2022 11:05:03 -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 735E913D925; Wed, 9 Mar 2022 08:02:51 -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 3042761670; Wed, 9 Mar 2022 16:02:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DA40C340E8; Wed, 9 Mar 2022 16:02:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1646841770; bh=XLsp/kinIQTkJ2i0QRtYM3XMnLfGdTKwwzZbbZDHJbM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1rRh9cDhRvaacVrT3M3Ya7QfWd/yrynFSF3QTAEWbyE33rxTk/w4B+C9LdCOlN15l POo7LUCXAZwic1uqV0Wd3ZlXMdKPXeCeQFbmPw3jkui0SWfwqNzAPay+wCISPcLLER yuOXdooDJSxSd3Bgzar7NJnfv7jrAUCQRHgvy5bY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Josh Poimboeuf , Borislav Petkov Subject: [PATCH 4.14 09/18] x86/speculation: Warn about Spectre v2 LFENCE mitigation Date: Wed, 9 Mar 2022 16:59:39 +0100 Message-Id: <20220309155856.369423069@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220309155856.090281301@linuxfoundation.org> References: <20220309155856.090281301@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 @@ -608,6 +608,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 @@ -929,6 +930,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; @@ -1693,6 +1695,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");