Message ID | 168980685014.28540.14547624168811413141.tip-bot2@tip-bot2 |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp2771475vqt; Wed, 19 Jul 2023 16:27:51 -0700 (PDT) X-Google-Smtp-Source: APBJJlFuJOVFn1gqEodk0VN72IiVHNm8a68bC5Kjqc5OXHYh1p4uSHO1CAUBsEr8ij50aJbeyHZd X-Received: by 2002:a05:6a21:329a:b0:134:37bb:89be with SMTP id yt26-20020a056a21329a00b0013437bb89bemr3424647pzb.57.1689809271002; Wed, 19 Jul 2023 16:27:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689809270; cv=none; d=google.com; s=arc-20160816; b=QwPxRH+4WaS+5JD0vZvuTnmGLFUdTMdMdM3B3S4zPrJWMxN8Gp43E2DGCip5EHeyp9 kpQY1tprru/8XItHsUwO/+LU0cBrypdqzip0k6irmT5LqXEzBfzmicigxG228tjFqN+b sV0JK2COUwQTVIgnej6GQufvWHN+DZovLVYLP7bcwlSuxqSVvXPYbX+9gQ0E4bYvMcDY liO2BTCWGhnhT5kzkSQCC7wuF8iYoO4bAe0w3HtFyhGdzgpAN1pYaWqo/Gr3GHBow5cs LBPHlcYqO1INrkww4QZ45yaJRYB2czjS/sMdCwC6jYYBuXcP41yFR8f5KniusiyjiQ1L WLnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:robot-unsubscribe :robot-id:message-id:mime-version:cc:subject:to:reply-to:sender:from :dkim-signature:dkim-signature:date; bh=8BTHQ7pBpYtAgK36iWl38TXsRPCr6YngSby2bITbJ3I=; fh=DErNX+FP1i15oz3qs87i1gR330nFAaK00aIY9hllqPU=; b=rUiFvP1lhP6nQmzTMCzAoGirtNTN3lonP2a8wnP3QmdhhoOB/0DKu8qoJFWnq4moyl +ZS0Xvf2nXngQ48+yEiJpIR7h9dfYiVNA24J2fvFURU0VIq3p84Yfp2BPK3C7V6HuNeJ vF1dQF9c673emvjQ1Vvf8R8i7sz0Dn2+3hCipdipOLEnoqMMp3ygBCWLRx4tR636UiPL NoGywDQWpmjX5JlWSHEf2fAsENrAY8InNGZDWNTrJlp6EwdvCNg1+qZAGkyzL2GoDQmt VQ6Md+97jgHWHupiVI+fHuIpvm0xTpHL9GAaOJXy5DCDfQ8/uW840uLkI9MZygVMHsXQ VWng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=c2jAOpoO; dkim=neutral (no key) header.i=@linutronix.de; 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=QUARANTINE dis=NONE) header.from=linutronix.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h14-20020a056a001a4e00b0068622ce08a0si4412602pfv.221.2023.07.19.16.27.38; Wed, 19 Jul 2023 16:27:50 -0700 (PDT) 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=@linutronix.de header.s=2020 header.b=c2jAOpoO; dkim=neutral (no key) header.i=@linutronix.de; 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=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230062AbjGSWsF (ORCPT <rfc822;daweilics@gmail.com> + 99 others); Wed, 19 Jul 2023 18:48:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229707AbjGSWre (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 19 Jul 2023 18:47:34 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2094A1FF9; Wed, 19 Jul 2023 15:47:33 -0700 (PDT) Date: Wed, 19 Jul 2023 22:47:30 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1689806850; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8BTHQ7pBpYtAgK36iWl38TXsRPCr6YngSby2bITbJ3I=; b=c2jAOpoOAsaJBZocjZCu8i+xIDIFLxL+PhPGvoQs9Tg4e/EoJhp0yeFDIEMX4d7v/22PMq 3verXIHv+M88m02Xm7lXQR4QmRcMX15b30N+kewXBO7GT6vsUfek9V9rGiB7svpNeiymGz hSpPL9GBjbvORZMElcX3ffAcxz3y5qrbZWa5dwtKeYa1WmCIsEI2rEXhlyfg/kvInTBb9e HRhts7j6TrG4JvJTPH7IJuvJCA5oWosyDrtgQ8Nbr2gGPRkBGwGvdRP7mJn6VFmZS4LlAV mMqTDWQbDF5g8tGx63rn6hpqeirAfc7BCZjOY2iD3PktGOmBRd7Wq3A5eQBm7g== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1689806850; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8BTHQ7pBpYtAgK36iWl38TXsRPCr6YngSby2bITbJ3I=; b=YRfJolYymDr5/6Bj9fZOWxC0VktrZN2c3ubjeKjmFtE5Z0WsZ+HzKQqr+ueNd2D2N+y7Ow +wpfhoqr6/m0YYBw== From: "tip-bot2 for Rick Edgecombe" <tip-bot2@linutronix.de> Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: x86/shstk] x86/shstk: Check that SSP is aligned on sigreturn Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, linux-kernel@vger.kernel.org MIME-Version: 1.0 Message-ID: <168980685014.28540.14547624168811413141.tip-bot2@tip-bot2> Robot-ID: <tip-bot2@linutronix.de> Robot-Unsubscribe: Contact <mailto:tglx@linutronix.de> to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771893446172544904 X-GMAIL-MSGID: 1771893446172544904 |
Series |
[tip:,x86/shstk] x86/shstk: Check that SSP is aligned on sigreturn
|
|
Commit Message
tip-bot2 for Thomas Gleixner
July 19, 2023, 10:47 p.m. UTC
The following commit has been merged into the x86/shstk branch of tip: Commit-ID: 580c301b703f720a18bf0a03cedf57f961d80eea Gitweb: https://git.kernel.org/tip/580c301b703f720a18bf0a03cedf57f961d80eea Author: Rick Edgecombe <rick.p.edgecombe@intel.com> AuthorDate: Mon, 12 Jun 2023 17:10:58 -07:00 Committer: Rick Edgecombe <rick.p.edgecombe@intel.com> CommitterDate: Tue, 11 Jul 2023 14:12:50 -07:00 x86/shstk: Check that SSP is aligned on sigreturn The shadow stack signal frame is read by the kernel on sigreturn. It relies on shadow stack memory protections to prevent forgeries of this signal frame (which included the pre-signal SSP). It also relies on the shadow stack signal frame to have bit 63 set. Since this bit would not be set via typical shadow stack operations, so the kernel can assume it was a value it placed there. However, in order to support 32 bit shadow stack, the INCSSPD instruction can increment the shadow stack by 4 bytes. In this case SSP might be pointing to a region spanning two 8 byte shadow stack frames. It could confuse the checks described above. Since the kernel only supports shadow stack in 64 bit, just check that the SSP is 8 byte aligned in the sigreturn path. Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Link: https://lore.kernel.org/all/20230613001108.3040476-33-rick.p.edgecombe%40intel.com --- arch/x86/kernel/shstk.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/shstk.c b/arch/x86/kernel/shstk.c index f02e8ea..a8705f7 100644 --- a/arch/x86/kernel/shstk.c +++ b/arch/x86/kernel/shstk.c @@ -252,6 +252,9 @@ static int shstk_pop_sigframe(unsigned long *ssp) unsigned long token_addr; int err; + if (!IS_ALIGNED(*ssp, 8)) + return -EINVAL; + err = get_shstk_data(&token_addr, (unsigned long __user *)*ssp); if (unlikely(err)) return err;