All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Jarkko Sakkinen" <jarkko@kernel.org>,
	"David Howells" <dhowells@redhat.com>
Cc: keyrings@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-security-module@vger.kernel.org,
	"Alexander Gordeev" <agordeev@linux.ibm.com>,
	"Anna Schumaker" <anna@kernel.org>,
	"Bharath SM" <bharathsm@microsoft.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Biggers" <ebiggers@kernel.org>,
	"Eric Dumazet" <edumazet@kernel.org>,
	"Heiko Carstens" <hca@linux.ibm.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"James Bottomley" <James.Bottomley@HansenPartnership.com>,
	"James Morris" <jmorris@namei.org>,
	"Marc Dionne" <marc.dionne@auristor.com>,
	"Mimi Zohar" <zohar@linux.ibm.com>,
	"Namjae Jeon" <linkinjeon@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Paul Moore" <paul@paul-moore.com>,
	"Paulo Alcantara" <pc@manguebit.org>,
	"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	"Shyam Prasad N" <sprasad@microsoft.com>,
	"Simon Horman" <horms@kernel.org>,
	"Sumit Garg" <sumit.garg@kernel.org>,
	"Sven Schnelle" <svens@linux.ibm.com>,
	"Tom Talpey" <tom@talpey.com>,
	"Trond Myklebust" <trondmy@kernel.org>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	"Chuck Lever" <cel@kernel.org>,
	"Jeff Layton" <jlayton@kernel.org>
Subject: Re: [PATCH v4 06/11] KEYS: trusted: TEE: Disable sysfs bind attributes
Date: Sun, 08 Nov 2026 13:16:18 +0000	[thread overview]
Message-ID: <sashiko-outbox-203765@kernel.org> (raw)
In-Reply-To: <20261107131512.3603168-7-jarkko@kernel.org>

Thank you for your contribution! Sashiko AI review found no new issues
in this patch, but noticed 1 related pre-existing issue it does not
introduce:
- [High] KEYS: trusted: premature register_key_type() before
  init_trusted() setup [1]
--

commit 3bd98fb38b1322342ed23c63a9f83d8e5a79dd02
Author: Jarkko Sakkinen <jarkko@kernel.org>

KEYS: trusted: TEE: Disable sysfs bind attributes

This commit sets suppress_bind_attrs on trusted_key_driver to prevent
userspace from unbinding the driver via sysfs and unregistering
key_type_trusted while the module is loaded.

> diff --git a/security/keys/trusted-keys/trusted_tee.c b/security/keys/trusted-keys/trusted_tee.c
> index 6e465c8bef5e5..227efb668aa95 100644
> --- a/security/keys/trusted-keys/trusted_tee.c
> +++ b/security/keys/trusted-keys/trusted_tee.c
> @@ -263,7 +263,8 @@ static struct tee_client_driver trusted_key_driver = {
>  	.remove		= trusted_key_remove,
>  	.id_table	= trusted_key_id_table,
>  	.driver		= {
> -		.name		= DRIVER_NAME,
> +		.name			= DRIVER_NAME,
> +		.suppress_bind_attrs	= true,
>  	},
>  };

[Severity: High]
This problem wasn't introduced by this patch, but can a concurrent
add_key() syscall invoke trusted_instantiate() before the backend is fully
initialized [1]?

Each backend's ->init() callback (including trusted_key_probe() for
trusted_key_driver) calls register_key_type(&key_type_trusted) before
returning to init_trusted(), which only then populates the static calls
and backend state:

CPU0                              CPU1
init_trusted()                    sys_add_key()
  ops->init()
    register_key_type(&key_type_trusted)
                                    key_type_lookup("trusted")
                                    ...
                                      trusted_instantiate()
                                        static_call(trusted_key_unseal)()
  static_call_update(trusted_key_seal, ...)
  static_call_update(trusted_key_unseal, ...)
  static_call_update(trusted_key_get_random, ...)
  migratable = ...

Calling an uninitialized DEFINE_STATIC_CALL_NULL target dereferences a
NULL function pointer when CONFIG_HAVE_STATIC_CALL is disabled, or runs
__static_call_nop() and leaves the return value uninitialized when it is
enabled.  In addition, trusted_key_probe() calls register_key_type()
before setting pvt_data.dev, and if TEE probing is deferred until after
init_trusted() returns, the static_call_update() calls in init_trusted()
never run at all.

[1] https://sashiko.dev/#/bug/linux-384065c3-cac2-4397-8b30-74edea3d1ff3

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261107131512.3603168-1-jarkko@kernel.org?part=6

  reply	other threads:[~2026-11-08 13:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-07 13:15 [PATCH v4 00/11] KEYS: Sanitize the garbage collector Jarkko Sakkinen
2026-11-07 13:15 ` [PATCH v4 01/11] KEYS: Add key_gc_flush() for draining RCU callbacks Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 02/11] dns_resolver: Move the key type into a separate module Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 03/11] NFSv4: Clear idmap keyring cache when the last client unloads Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 04/11] smb: client: Clear idmap/SPNEGO caches when the last session is unloaded Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 05/11] s390/cert_store: Start tracking subsystem keys Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 06/11] KEYS: trusted: TEE: Disable sysfs bind attributes Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot [this message]
2026-11-07 13:15 ` [PATCH v4 07/11] KEYS: trusted: TEE: Synchronize session lifetime Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 08/11] rxrpc: Move key types to their own module Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 09/11] KEYS: Pin the backing kernel module for a key type Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-07 13:15 ` [PATCH v4 10/11] KEYS: Remove key_type_dead Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot
2026-11-08 13:36     ` Jarkko Sakkinen
2026-11-07 13:15 ` [PATCH v4 11/11] KEYS: key_garbage_collector(): process in chunks Jarkko Sakkinen
2026-11-08 13:16   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-203765@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=agordeev@linux.ibm.com \
    --cc=anna@kernel.org \
    --cc=bharathsm@microsoft.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=cel@kernel.org \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=ebiggers@kernel.org \
    --cc=edumazet@kernel.org \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=horms@kernel.org \
    --cc=jarkko@kernel.org \
    --cc=jlayton@kernel.org \
    --cc=jmorris@namei.org \
    --cc=keyrings@vger.kernel.org \
    --cc=kuba@kernel.org \
    --cc=linkinjeon@kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=marc.dionne@auristor.com \
    --cc=pabeni@redhat.com \
    --cc=paul@paul-moore.com \
    --cc=pc@manguebit.org \
    --cc=ronniesahlberg@gmail.com \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=serge@hallyn.com \
    --cc=sprasad@microsoft.com \
    --cc=sumit.garg@kernel.org \
    --cc=svens@linux.ibm.com \
    --cc=tom@talpey.com \
    --cc=trondmy@kernel.org \
    --cc=zohar@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.