Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754691AbcKUTFi (ORCPT ); Mon, 21 Nov 2016 14:05:38 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60458 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754469AbcKUTFg (ORCPT ); Mon, 21 Nov 2016 14:05:36 -0500 Date: Mon, 21 Nov 2016 14:05:32 -0500 From: Peter Jones To: Ard Biesheuvel Cc: Josh Boyer , David Howells , keyrings@vger.kernel.org, Matthew Garrett , "linux-efi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , linux-security-module Subject: Re: [PATCH 9/9] MODSIGN: Allow the "db" UEFI variable to be suppressed Message-ID: <20161121190531.dcha3soohybzaqr6@redhat.com> References: <147931984418.16460.6639993676886095760.stgit@warthog.procyon.org.uk> <147931990959.16460.3038875071067540418.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20161104 (1.7.1) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 21 Nov 2016 19:05:35 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1515 Lines: 35 On Mon, Nov 21, 2016 at 04:42:45PM +0000, Ard Biesheuvel wrote: > On 21 November 2016 at 16:26, Josh Boyer wrote: > > On Mon, Nov 21, 2016 at 11:18 AM, Ard Biesheuvel > > wrote: > >> On 16 November 2016 at 18:11, David Howells wrote: > >>> From: Josh Boyer > >>> > >>> If a user tells shim to not use the certs/hashes in the UEFI db variable > >>> for verification purposes, shim will set a UEFI variable called > >>> MokIgnoreDB. Have the uefi import code look for this and ignore the db > >>> variable if it is found. > >>> > >> > >> Similar concern as in the previous patch: it appears to me that you > >> can DoS a machine by setting MokIgnoreDB if, e.g., its modules are > >> signed against a cert that resides in db, and shim/mokmanager are not > >> being used. > > > > If shim/mokmanager aren't used, then you can't actually modify > > MokIgnoreDB. Again, it requires physical access and a reboot into > > mokmanager to actually take effect. > > > > This does the trick as well > > printf "\x07\x00\x00\x00\x01" > > /sys/firmware/efi/efivars/MokIgnoreDB-605dab50-e046-4300-abb6-3dd810dd8b23 So that really means two things. First, kernel should only honor any of the Mok* variables if they're Boot Services-only variables. Second, to avoid the DoS, shim should create them all as Boot Services-only the first time it boots. That'll prevent them from being created post-boot. -- Peter