Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp551726rwb; Tue, 27 Sep 2022 00:58:11 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4E7A5LDea1x8oWJJZ5hKhfpFtvSI3bB7t0hmix84nhezQbjHrptpsWXIZwffrlY997SbWT X-Received: by 2002:a17:903:2451:b0:178:4423:af32 with SMTP id l17-20020a170903245100b001784423af32mr26751553pls.51.1664265491064; Tue, 27 Sep 2022 00:58:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664265491; cv=none; d=google.com; s=arc-20160816; b=rUR5cHAo3uquTmSNC8BlZ4FRIGDkGVIcvNkeADRPpy/p50WkJed8PJiExw9PHAYG/E qPqahgQ1jvNDRNG/998jGslUbf8LX3bk72taRgYzw6Vguuc0PznkGNu6jTXcBAfCEwP/ W5Rog4FboAe2v1TFYzILedU+USF/6lBFD6IWWy5zuwROekBlxHZh55TekjlL6+qdE8I5 sTyXz5SyiZkVy3Ip3oVuWwH/Sq+5V6SW+G7lIJHCG83m0tBdg9KHpUwPvTdMAo5AX2L+ QgDXovpjInhDT3RMcN7mlxgdoQeh/Q4SOK2NmQEtD3rfIsh3QN4UWT7A6XaQeLvN9IPY CHAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:to :from:date:dkim-signature:dkim-signature; bh=1VwPyV7AtQHzloaAOjZRzxyWeQSrOsANjomRHJp33DQ=; b=nP6TMBnGa9RNVgt6A45MtPMLdKNBnoXc22oFUlP+gC95bQjF4AEX74VtZHCiOumhBZ lrgduOq8V8UeU19jR8e15cbjpAEQUq3wOOydm+BcL4GXkq/2e4+FuxsFDvK+zeVyvatG HpMd54gNq24KAw04a+IhMY0UbI9IsC1UaAT9kLD/CXxzb5lEuUHH6A9lCb/G4qykQlE4 rqv99gqI5+uLJvcjnhGjFjePkiXpcURmqChrby69iLShXW91yhYTypV3d5fhtweZrrbn nyXkv67GLcjVMtMVt9TkCOMvwLkK6yUBbsHkH7f9oR2aBjecsYPACJi4bX27Ejq6Nzog GXyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=v5VLFFd9; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=i72b3Uei; 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=suse.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q5-20020a170902b10500b0017849a2b55dsi1034828plr.284.2022.09.27.00.58.00; Tue, 27 Sep 2022 00:58:11 -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=@suse.de header.s=susede2_rsa header.b=v5VLFFd9; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=i72b3Uei; 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=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231221AbiI0Hti (ORCPT + 99 others); Tue, 27 Sep 2022 03:49:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229687AbiI0HtX (ORCPT ); Tue, 27 Sep 2022 03:49:23 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 33C2E9E881; Tue, 27 Sep 2022 00:49:15 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id A7FC721B71; Tue, 27 Sep 2022 07:49:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1664264954; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1VwPyV7AtQHzloaAOjZRzxyWeQSrOsANjomRHJp33DQ=; b=v5VLFFd9wq5cE+//cZFZuH7cOpbibmgr9gVvKXGP9FM3RQlBO+gs3evfUkW+vCgxOrTshy n+2pVLHQFScJy3uU20eab0wUMdEHJSpALPLuLNpEjcsbcCFjLw9TqYLlXi2nC+ovevb+LN LO+UMRMB11+tySlxMbilfLNwj0Qfaqs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1664264954; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1VwPyV7AtQHzloaAOjZRzxyWeQSrOsANjomRHJp33DQ=; b=i72b3Uei1khrOAbpleZV6WJGrMDJTZm+ya3DC1m6lhLTuY0UD4gT1qMCwuelFNo5c1m1/S vdm3M/Qf50Z+mZBQ== Received: from kitsune.suse.cz (kitsune.suse.cz [10.100.12.127]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id 6269E2C184; Tue, 27 Sep 2022 07:49:12 +0000 (UTC) Date: Tue, 27 Sep 2022 09:49:11 +0200 From: Michal =?iso-8859-1?Q?Such=E1nek?= To: AKASHI Takahiro , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Alexander Gordeev , Sven Schnelle , Philipp Rudo , Sasha Levin , Baoquan He , Alexander Egorenkov , "open list:S390" , Catalin Marinas , Will Deacon , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , "H. Peter Anvin" , Eric Biederman , Mimi Zohar , "Naveen N. Rao" , Andrew Morton , "moderated list:ARM64 PORT (AARCH64 ARCHITECTURE)" , "open list:LINUX FOR POWERPC (32-BIT AND 64-BIT)" , "open list:KEXEC" , Coiby Xu , keyrings@vger.kernel.org, linux-security-module@vger.kernel.org, James Morse Subject: Re: [PATCH 5.15 0/6] arm64: kexec_file: use more system keyrings to verify kernel image signature + dependencies Message-ID: <20220927074911.GF28810@kitsune.suse.cz> References: <20220924094521.GY28810@kitsune.suse.cz> <20220924115523.GZ28810@kitsune.suse.cz> <20220926074024.GD28810@kitsune.suse.cz> <20220927023952.GB34139@laputa> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220927023952.GB34139@laputa> User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS 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 On Tue, Sep 27, 2022 at 11:39:52AM +0900, AKASHI Takahiro wrote: > On Mon, Sep 26, 2022 at 09:40:25AM +0200, Michal Such??nek wrote: > > On Mon, Sep 26, 2022 at 08:47:32AM +0200, Greg Kroah-Hartman wrote: > > > On Sat, Sep 24, 2022 at 01:55:23PM +0200, Michal Such?nek wrote: > > > > On Sat, Sep 24, 2022 at 12:13:34PM +0200, Greg Kroah-Hartman wrote: > > > > > On Sat, Sep 24, 2022 at 11:45:21AM +0200, Michal Such?nek wrote: > > > > > > On Sat, Sep 24, 2022 at 11:19:19AM +0200, Greg Kroah-Hartman wrote: > > > > > > > On Fri, Sep 23, 2022 at 07:10:28PM +0200, Michal Suchanek wrote: > > > > > > > > Hello, > > > > > > > > > > > > > > > > this is backport of commit 0d519cadf751 > > > > > > > > ("arm64: kexec_file: use more system keyrings to verify kernel image signature") > > > > > > > > to table 5.15 tree including the preparatory patches. > > > > > > > > > > > > > > This feels to me like a new feature for arm64, one that has never worked > > > > > > > before and you are just making it feature-parity with x86, right? > > > > > > > > > > > > > > Or is this a regression fix somewhere? Why is this needed in 5.15.y and > > > > > > > why can't people who need this new feature just use a newer kernel > > > > > > > version (5.19?) > > > > > > > > > > > > It's half-broken implementation of the kexec kernel verification. At the time > > > > > > it was implemented for arm64 we had the platform and secondary keyrings > > > > > > and x86 was using them but on arm64 the initial implementation ignores > > > > > > them. > > > > > > > > > > Ok, so it's something that never worked. Adding support to get it to > > > > > work doesn't really fall into the stable kernel rules, right? > > > > > > > > Not sure. It was defective, not using the facilities available at the > > > > time correctly. Which translates to kernels that can be kexec'd on x86 > > > > failing to kexec on arm64 without any explanation (signed with same key, > > > > built for the appropriate arch). > > > > > > Feature parity across architectures is not a "regression", but rather a > > > "this feature is not implemented for this architecture yet" type of > > > thing. > > > > That depends on the view - before kexec verification you could boot any > > kernel, now you can boot some kernels signed with a valid key, but not > > others - the initial implementation is buggy, probably because it > > is based on an old version of the x86 code. > > Buggy? > The feature of supporting platform ring had been slipped in just before > I submitted the latest patch series which was eventually merged. > (I should have noticed it though.) It's difficult to notice another in-flight patch that does not conflict with yours, and is for a different architecture. That's why we have followup patches and Fixes tags. However, the support for secondary keyring was added in 4.19 by commit ea93102f3224 ("Fix kexec forbidding kernels signed with keys in the secondary keyring to boot") which was not supported by the arm64 code either. > Looking at changes in the commit 278311e417be ("kexec, KEYS: Make use of platform > keyring for signature verify"), it seems to be obvious that it is a new feature > because it introduced a new Kconfig option, CONFIG_INTEGRITY_PLATFORM_KEYRING, > which allows for enabling/disabling platform ring support. Yes, and that feature exists since 5.1, and we are talking about 5.15 here. Not making use of the keyring that is supported by the kernel results in inability to kexec kernels that are signed by a valid key, arguably a bug. Thanks Michal