From: "Mickaël Salaün" <mic@digikod.net>
To: "Günther Noack" <gnoack3000@gmail.com>
Cc: Paul Moore <paul@paul-moore.com>,
James Morris <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
Konstantin Meskhidze <konstantin.meskhidze@huawei.com>,
Shuah Khan <shuah@kernel.org>, Dwi Siswanto <me@dw1.io>,
linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH v2 1/4] landlock: Fix layer composition of LANDLOCK_ACCESS_FS_REFER
Date: Fri, 13 Nov 2026 00:25:07 +0100 [thread overview]
Message-ID: <20261113.hij1gi7Ees1A@digikod.net> (raw)
In-Reply-To: <20261108-b4-landlock-refer-nonfs-layer-v2-1-2b405fc1b3aa@gmail.com>
Good. Please add erratum 5 in this patch with abi-4.h .
On Sun, Nov 08, 2026 at 09:23:48PM +0100, Günther Noack wrote:
> In landlock_get_fs_access_mask(), only add the
> LANDLOCK_ACCESS_FS_REFER right if any filesystem access rights are
> handled at all. This prevents us from accidentally treating
> non-filesystem layers as if they handled LANDLOCK_ACCESS_FS_REFER.
>
> landlock_get_fs_access_mask() is used when initializing the layer
> masks for doing access right checks, so this bug meant that we
> unintentionally denied "refer" (e.g., link, rename) operations in
> layered cases, where the same operation would have been accepted if
> only either one of the two layers had been enforced. If the rulesets
> individually allow an operation, the composition of these rulesets
> should also allow it.
>
> The bug only manifests as soon as one other layer handles filesystem
> access rights. Otherwise, Landlock filesystem path walk is guarded by
> an early exit for the case that no filesystem-enforcing layer exists.
>
> Reported-by: Dwi Siswanto <me@dw1.io>
> Link: https://github.com/landlock-lsm/linux/issues/67
> Link: https://github.com/landlock-lsm/go-landlock/issues/66
> Fixes: fff69fb03dde ("landlock: Support network rules with TCP bind and connect")
> Cc: stable@vger.kernel.org
> Signed-off-by: Günther Noack <gnoack3000@gmail.com>
> ---
> security/landlock/domain.h | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/security/landlock/domain.h b/security/landlock/domain.h
> index 935e18b12b3c..d9ebf4857fce 100644
> --- a/security/landlock/domain.h
> +++ b/security/landlock/domain.h
> @@ -262,9 +262,16 @@ static inline access_mask_t
> landlock_get_fs_access_mask(const struct landlock_domain *const domain,
> const u16 layer_level)
> {
> - /* Handles all initially denied by default access rights. */
> - return domain->layers[layer_level].handled.fs |
> - _LANDLOCK_ACCESS_FS_INITIALLY_DENIED;
> + access_mask_t handled = domain->layers[layer_level].handled.fs;
> +
> + /*
> + * Handles all initially denied by default access rights, but only for
> + * layers handling filesystem accesses.
> + */
> + if (handled)
> + handled |= _LANDLOCK_ACCESS_FS_INITIALLY_DENIED;
> +
> + return handled;
> }
>
> static inline access_mask_t
>
> --
> 2.56.0
>
>
next prev parent reply other threads:[~2026-11-12 23:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-08 20:23 [PATCH v2 0/4] landlock: Fix REFER in layered domains Günther Noack
2026-11-08 20:23 ` [PATCH v2 1/4] landlock: Fix layer composition of LANDLOCK_ACCESS_FS_REFER Günther Noack
2026-11-12 23:25 ` Mickaël Salaün [this message]
2026-11-08 20:23 ` [PATCH v2 2/4] selftests/landlock: Test that layering does not break refer Günther Noack
2026-11-12 23:25 ` Mickaël Salaün
2026-11-08 20:23 ` [PATCH v2 3/4] landlock: Simplify landlock_get_fs_access_mask() Günther Noack
2026-11-12 23:25 ` Mickaël Salaün
2026-11-08 20:23 ` [PATCH v2 4/4] landlock: Clarify implicit handling of LANDLOCK_ACCESS_FS_REFER Günther Noack
2026-11-12 23:28 ` Mickaël Salaün
2026-11-12 23:24 ` [PATCH v2 0/4] landlock: Fix REFER in layered domains Mickaël Salaün
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=20261113.hij1gi7Ees1A@digikod.net \
--to=mic@digikod.net \
--cc=gnoack3000@gmail.com \
--cc=jmorris@namei.org \
--cc=konstantin.meskhidze@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=me@dw1.io \
--cc=paul@paul-moore.com \
--cc=serge@hallyn.com \
--cc=shuah@kernel.org \
--cc=stable@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®