Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp4833634pxy; Tue, 27 Apr 2021 13:49:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxxc8hpBJeCiNLgURWFzbrZyxWyFEzZimkT3um25AfOd5fGQkEeHHKjBTY8WbxUkNi8snSf X-Received: by 2002:a17:90a:3ba1:: with SMTP id e30mr10757810pjc.99.1619556582157; Tue, 27 Apr 2021 13:49:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619556582; cv=none; d=google.com; s=arc-20160816; b=WqXHsEs1gi1EBtqLe4I5sdmdZIHQhIYPo5OtW9SeAR5Dr/HJLwhObCZEUr+w+v+GHk 76GZtV+guA91IKs2ttuP6kmaHd+pHQbuWf48S3VV9eL0erELGoSygQddFPuuo3YSry2/ 1o/OdQTm7a+MN/WvQydKkokNP2/KNzgU2bp2ASwUM2UaIUc5a2FtKemC01SG2hso7HGK myD5T1w86MLxrsqqrRCP8pPzMF9W1p2DQbM1qMfUMYdxc8ncugka0QY0pdJ2zhjjWYO+ GmbdFLxUxYRhCRiEpXELKT+IPWGPb5jV7cyxxslTFPfX/sJyT73c56cH1i5cE+B0vcS5 mMrg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=oDPbeDOFKfXZ9F7shHsmYpqsPcux/ys/VSEZ0RAoYWc=; b=hZfU0GZIRDGeeOaFGbccp0WH37nvs0Mabops9EsITRAsnanS92BWzhcgmtDkGUo3NG RoqT8f7/vqsDMu4rgAAx/wypDBs1DZbZ8dq2hDL3JWDMvNfz+X6yvUfyIV8hA6VGh604 Lz53rWJdxrn0LaUEFaogjEogpPvxO+uNLvvYMxaMrLdU/g3VzVQg+SJxzbMo6WSxV1HY QK83uKspEpUzB2Rk1cP8MVeESxi/7RZiU8/UsD0IHgFrHcSRSl54zHqy6FsfdpP3kRoA L8J+iGgsW2LV+ZDrWVuZk7oIht5GuMjgwpowYjxl8nlvpWf3Kob1dRgdnF+Jmcdkda4K nWug== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lk18si5864023pjb.42.2021.04.27.13.49.29; Tue, 27 Apr 2021 13:49:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239331AbhD0UtZ (ORCPT + 99 others); Tue, 27 Apr 2021 16:49:25 -0400 Received: from mga09.intel.com ([134.134.136.24]:56328 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237078AbhD0UtC (ORCPT ); Tue, 27 Apr 2021 16:49:02 -0400 IronPort-SDR: UjvretDLawR3PPg8fZnKVRni4ignPij4iv+DJNiVWEFT/YFhMz3ggXerBm8TVw4fJAHp1fn615 kosHlL4YloJA== X-IronPort-AV: E=McAfee;i="6200,9189,9967"; a="196699400" X-IronPort-AV: E=Sophos;i="5.82,255,1613462400"; d="scan'208";a="196699400" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2021 13:47:48 -0700 IronPort-SDR: jmrqRM4rqQwkULfi1XbRRsErJAMs/mT3YuV7FAT2tJ2nNhGd9ZZPZ4nGh3yI7SbItL6qML+VEn ITgOp0I298Kg== X-IronPort-AV: E=Sophos;i="5.82,255,1613462400"; d="scan'208";a="457835107" Received: from yyu32-desk.sc.intel.com ([143.183.136.146]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2021 13:47:48 -0700 From: Yu-cheng Yu To: x86@kernel.org, "H. Peter Anvin" , Thomas Gleixner , Ingo Molnar , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-api@vger.kernel.org, Arnd Bergmann , Andy Lutomirski , Balbir Singh , Borislav Petkov , Cyrill Gorcunov , Dave Hansen , Eugene Syromiatnikov , Florian Weimer , "H.J. Lu" , Jann Horn , Jonathan Corbet , Kees Cook , Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra , Randy Dunlap , "Ravi V. Shankar" , Vedvyas Shanbhogue , Dave Martin , Weijiang Yang , Pengfei Xu , Haitao Huang Cc: Yu-cheng Yu , Jarkko Sakkinen Subject: [PATCH v26 9/9] x86/vdso: Add ENDBR to __vdso_sgx_enter_enclave Date: Tue, 27 Apr 2021 13:47:20 -0700 Message-Id: <20210427204720.25007-10-yu-cheng.yu@intel.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210427204720.25007-1-yu-cheng.yu@intel.com> References: <20210427204720.25007-1-yu-cheng.yu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ENDBR is a special new instruction for the Indirect Branch Tracking (IBT) component of CET. IBT prevents attacks by ensuring that (most) indirect branches and function calls may only land at ENDBR instructions. Branches that don't follow the rules will result in control flow (#CF) exceptions. ENDBR is a noop when IBT is unsupported or disabled. Most ENDBR instructions are inserted automatically by the compiler, but branch targets written in assembly must have ENDBR added manually. Add ENDBR to __vdso_sgx_enter_enclave() branch targets. Signed-off-by: Yu-cheng Yu Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Jarkko Sakkinen Cc: Peter Zijlstra --- arch/x86/entry/vdso/vsgx.S | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/entry/vdso/vsgx.S b/arch/x86/entry/vdso/vsgx.S index 86a0e94f68df..f3ebd38d1898 100644 --- a/arch/x86/entry/vdso/vsgx.S +++ b/arch/x86/entry/vdso/vsgx.S @@ -4,6 +4,7 @@ #include #include #include +#include #include "extable.h" @@ -27,6 +28,7 @@ SYM_FUNC_START(__vdso_sgx_enter_enclave) /* Prolog */ .cfi_startproc + ENDBR64 push %rbp .cfi_adjust_cfa_offset 8 .cfi_rel_offset %rbp, 0 @@ -62,6 +64,7 @@ SYM_FUNC_START(__vdso_sgx_enter_enclave) .Lasync_exit_pointer: .Lenclu_eenter_eresume: enclu + ENDBR64 /* EEXIT jumps here unless the enclave is doing something fancy. */ mov SGX_ENCLAVE_OFFSET_OF_RUN(%rbp), %rbx @@ -91,6 +94,7 @@ SYM_FUNC_START(__vdso_sgx_enter_enclave) jmp .Lout .Lhandle_exception: + ENDBR64 mov SGX_ENCLAVE_OFFSET_OF_RUN(%rbp), %rbx /* Set the exception info. */ -- 2.21.0