Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1030007yba; Thu, 4 Apr 2019 02:49:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqzzIOr8MNaeErVo7+nrXEIhLNsZXdrCycMwe2SFrApB8qJmiLlaluLcgOrzQ/VqJYRG9Lp+ X-Received: by 2002:a63:6849:: with SMTP id d70mr4802767pgc.21.1554371362965; Thu, 04 Apr 2019 02:49:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554371362; cv=none; d=google.com; s=arc-20160816; b=m6A3n9aRz24IPnLR/iAmXFzTe/PrkRPXC0o6c03cY5//bVwl2m0ElqK5Ps/ryJsJzI 2zWbod6gn2mpS++5GiodqU4HJYkZA0EgrC+yh3jTDnc7sIFH6+6fDhalGFQ4tbL8EVeB CjgvH5GINfOoVMUseNV197zrtdArraXjWJvdsNYz13TplrelNG2niXZtXj9PrVzls+HN 4VZqLI7PKh9tyqUuPmcvwEIRZBcqJ0zgsHfssL5dwtbCJVXhQUvI5v4PJGZyJw9BxqaO 2W7sGzEitFx/sNWSE0C0DNTyNx0pQE77G2L41elEbqrZw225scqN/zpQqFPwOLQK6qHC zOew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=14ysdsNBtgIU56jLoxmd2ZIMTtDZyc8SCQ+7tsJzH+s=; b=hantYSJ+kjFsjxzcZffAekvy+6r6HGzxqvkCclyl7OtkJkRAGtKrMVUVoNUcoBWOqS 3NPhN3hf8OAJvzawIxDPp+pVPJFXwAdJNVi9spuuY35qv5JcU6JfoI3zo8ghOG9tqGeE Mfvtq2iGppuwvLcK1e62j18CBCU1AIrZbqv9D5fCfJcQ+hkHBWXSBY7mXQNsnTa1HrtG oXcGghMp00UoU5YhpsTCRkmA0I6k8H1MuoKMyffatRrrMOgQzWgU80w3Y9pJnHsL5pmq 74Htb72/A6htvt5pHjqIZY5a89c6K3GLkjK64CX2pwUKT1hVdRI9Oj1UGo0wcXBTVkGD yn7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GgJePlXz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l70si16063405pgd.242.2019.04.04.02.49.07; Thu, 04 Apr 2019 02:49:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GgJePlXz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730648AbfDDI5R (ORCPT + 99 others); Thu, 4 Apr 2019 04:57:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:60908 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729793AbfDDI5Q (ORCPT ); Thu, 4 Apr 2019 04:57:16 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5221420693; Thu, 4 Apr 2019 08:57:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554368234; bh=bWwq2c3X2N87zWWT7VNx2qKe+Ge2GYYI/xe3GDqaDWw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GgJePlXzFzTJ5ZnRUwu8pEJLZ3UAmnpXmlFzkVMA28Wj6xP1wdAL5Tufr5+NXA9aF UyL7BFtTx9f3iMxo/Er9D7VuWu8yv2zpTIY+aaXiq7A+dJcykDvQ7wQhwBW5a8t3l0 j0BuXz2cIPfESgq09G6J1uY5W9Alm3ekS2QSK4YU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ard Biesheuvel , Sai Praneeth Prakhya , AKASHI Takahiro , Alexander Graf , Bjorn Andersson , Borislav Petkov , Heinrich Schuchardt , Jeffrey Hugo , Lee Jones , Leif Lindholm , Linus Torvalds , Matt Fleming , Peter Jones , Peter Zijlstra , Thomas Gleixner , linux-efi@vger.kernel.org, Ingo Molnar , Sasha Levin Subject: [PATCH 4.14 087/121] efi/memattr: Dont bail on zero VA if it equals the regions PA Date: Thu, 4 Apr 2019 10:47:55 +0200 Message-Id: <20190404084549.961752459@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190404084545.245659903@linuxfoundation.org> References: <20190404084545.245659903@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 5de0fef0230f3c8d75cff450a71740a7bf2db866 ] The EFI memory attributes code cross-references the EFI memory map with the more granular EFI memory attributes table to ensure that they are in sync before applying the strict permissions to the regions it describes. Since we always install virtual mappings for the EFI runtime regions to which these strict permissions apply, we currently perform a sanity check on the EFI memory descriptor, and ensure that the EFI_MEMORY_RUNTIME bit is set, and that the virtual address has been assigned. However, in cases where a runtime region exists at physical address 0x0, and the virtual mapping equals the physical mapping, e.g., when running in mixed mode on x86, we encounter a memory descriptor with the runtime attribute and virtual address 0x0, and incorrectly draw the conclusion that a runtime region exists for which no virtual mapping was installed, and give up altogether. The consequence of this is that firmware mappings retain their read-write-execute permissions, making the system more vulnerable to attacks. So let's only bail if the virtual address of 0x0 has been assigned to a physical region that does not reside at address 0x0. Signed-off-by: Ard Biesheuvel Acked-by: Sai Praneeth Prakhya Cc: AKASHI Takahiro Cc: Alexander Graf Cc: Bjorn Andersson Cc: Borislav Petkov Cc: Heinrich Schuchardt Cc: Jeffrey Hugo Cc: Lee Jones Cc: Leif Lindholm Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Jones Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Fixes: 10f0d2f577053 ("efi: Implement generic support for the Memory ...") Link: http://lkml.kernel.org/r/20190202094119.13230-4-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Sasha Levin --- drivers/firmware/efi/memattr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/firmware/efi/memattr.c b/drivers/firmware/efi/memattr.c index 8986757eafaf..aac972b056d9 100644 --- a/drivers/firmware/efi/memattr.c +++ b/drivers/firmware/efi/memattr.c @@ -94,7 +94,7 @@ static bool entry_is_valid(const efi_memory_desc_t *in, efi_memory_desc_t *out) if (!(md->attribute & EFI_MEMORY_RUNTIME)) continue; - if (md->virt_addr == 0) { + if (md->virt_addr == 0 && md->phys_addr != 0) { /* no virtual mapping has been installed by the stub */ break; } -- 2.19.1