[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cfece0a5-fd0a-41d7-939d-5a2f524c9ced@schaufler-ca.com>
Date: Thu, 27 Mar 2025 09:41:19 -0700
From: Casey Schaufler <casey@...aufler-ca.com>
To: Jeffrey Vander Stoep <jeffv@...gle.com>,
Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Thiébaud Weksteen <tweek@...gle.com>,
Paul Moore <paul@...l-moore.com>,
"Cameron K. Williams" <ckwilliams.work@...il.com>,
"Kipp N. Davis" <kippndavis.work@....com>,
Stephen Smalley <stephen.smalley.work@...il.com>, selinux@...r.kernel.org,
linux-security-module@...r.kernel.org, linux-kernel@...r.kernel.org,
Nick Kralevich <nnk@...gle.com>, Casey Schaufler <casey@...aufler-ca.com>
Subject: Re: [GIT PULL] selinux/selinux-pr-20250323
On 3/27/2025 1:59 AM, Jeffrey Vander Stoep wrote:
> On Thu, Mar 27, 2025 at 5:10 AM Linus Torvalds
> <torvalds@...ux-foundation.org> wrote:
>> On Wed, 26 Mar 2025 at 20:28, Thiébaud Weksteen <tweek@...gle.com> wrote:
>>> That is not quite right. If you look at commit 581dd6983034 [1], when
>>> a firmware is about to be loaded, the kernel credentials are used.
>> Ahh, that's good, at least there's no "random state" to check.
>>
>> But it does still mean that the security check is pointless - there
>> aren't any other credentials that would validly be used for firmware
>> loading, so what was the point of checking them again?
> The value here isn't so much about checking the source context
> "kernel", but rather about checking the target context and enforcing
> that firmware can only come from trusted filesystems. So even a
> compromised privileged process that sets firmware_class.path cannot
> cause the kernel to load firmware from an arbitrary source.
>
> These restrictions reduce our reliance on (1) individual component
> manufacturers (e.g. NFC chips) implementing signature verification
> correctly in their firmware loading procedure, or (2) the fallout for
> the Android ecosystem if a component manufacturer's private key leaks
> because even firmware signed with the leaked key will not be trusted
> if it doesn't come from the trusted filesystem signed by the Android
> device manufacturer. Leaked keys is a very real problem. Restrictions
> like those added here can significantly reduce the severity of such
> incidences.
>
> With this, we can write policies for Android devices that enforce that
> firmware only comes from trusted filesystems. For example:
>
> allow kernel vendor_file:system firmware_load;
Am I missing something, or isn't that what loadpin is for?
Powered by blists - more mailing lists