From: sashiko-bot@kernel.org
Cc: linux-security-module@vger.kernel.org
Subject: Re: [PATCH] dm-verity: clear LSM integrity state on suspend
Date: Mon, 21 Sep 2026 22:16:26 +0000 [thread overview]
Message-ID: <20260921221626.D2EAE1F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260921220516.121589-1-wufan@kernel.org>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] dm-verity: clearing LSM state on suspend breaks IPE for cached files
- [High] ipe: Use-After-Free in evaluate_dmv_roothash() due to missing RCU
--
commit 0a1a0f42158da1707e32f8b9739a8420e73985d1
Author: Fan Wu <wufan@kernel.org>
dm-verity: clear LSM integrity state on suspend
This commit updates dm-verity to clear the published root hash and signature
state from the LSM security blob during verity_postsuspend(). This prevents
the block device from retaining stale attributes if the verity target is
replaced with a different target type.
> diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
> index cb105ccc47ecb..6d589867623c0 100644
> --- a/drivers/md/dm-verity-target.c
> +++ b/drivers/md/dm-verity-target.c
[ ... ]
> @@ -1779,8 +1781,31 @@ static int verity_preresume(struct dm_target *ti)
> return r;
> }
>
> +static void verity_security_clear_integrity(struct dm_target *ti)
> +{
> + struct block_device *bdev = dm_disk(dm_table_get_md(ti->table))->part0;
> +
> + security_bdev_setintegrity(bdev, LSM_INT_DMVERITY_ROOTHASH, NULL, 0);
[Severity: High]
Does passing NULL to security_bdev_setintegrity() trigger a use-after-free
in IPE?
When this is called, ipe_bdev_setintegrity() appears to free the root hash
without RCU synchronization:
security/ipe/hooks.c:ipe_bdev_setintegrity() {
if (!value) {
ipe_digest_free(blob->root_hash);
blob->root_hash = NULL;
...
If a concurrent thread is evaluating an mprotect or execve call, could it
dereference this freed memory in evaluate_dmv_roothash()?
security/ipe/eval.c:evaluate_dmv_roothash() {
...
ipe_digest_eval(p->value, ctx->ipe_bdev->root_hash);
...
> + verity_security_clear_signature(bdev);
> +}
> +
> +#else
> +
> +static inline void verity_security_clear_integrity(struct dm_target *ti)
> +{
> +}
> +
> #endif /* CONFIG_SECURITY */
>
> +static void verity_postsuspend(struct dm_target *ti)
> +{
> + struct dm_verity *v = ti->private;
> +
> + flush_workqueue(v->verify_wq);
> + dm_bufio_client_reset(v->bufio);
> + verity_security_clear_integrity(ti);
[Severity: High]
Does unconditionally clearing the integrity state on every table suspend break
IPE evaluation for already cached files?
During a temporary freeze or table reload, clearing the LSM integrity state
will cause concurrent VFS operations on already-cached files to see a cleared
state. Will this result in spurious -EACCES failures since IPE will deny
access despite the files being valid?
> +}
> +
> static struct target_type verity_target = {
> .name = "verity",
> /* Note: the LSMs depend on the singleton and immutable features */
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260921220516.121589-1-wufan@kernel.org?part=1
next prev parent reply other threads:[~2026-09-21 22:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-21 22:05 [PATCH] dm-verity: clear LSM integrity state on suspend Fan Wu
2026-09-21 22:16 ` sashiko-bot [this message]
2026-09-21 23:55 ` Fan Wu
2026-10-13 14:15 ` Mikulas Patocka
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=20260921221626.D2EAE1F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.