Thread (11 messages) 11 messages, 4 authors, 2023-12-08

Re: [PATCH 3/4] listmount: small changes in semantics

From: Christian Brauner <brauner@kernel.org>
Date: 2023-12-08 13:07:26
Also in: linux-fsdevel, linux-man, linux-security-module

On Wed, Dec 06, 2023 at 09:24:45PM +0100, Miklos Szeredi wrote:
On Wed, 6 Dec 2023 at 20:58, Serge E. Hallyn [off-list ref] wrote:
quoted
On Tue, Nov 28, 2023 at 05:03:34PM +0100, Miklos Szeredi wrote:
quoted
quoted
-     if (!is_path_reachable(m, mnt->mnt_root, &rootmnt))
-             return capable(CAP_SYS_ADMIN) ? 0 : -EPERM;
+     if (!capable(CAP_SYS_ADMIN) &&
Was there a reason to do the capable check first?  In general,
checking capable() when not needed is frowned upon, as it will
set the PF_SUPERPRIV flag.
I synchronized the permission checking with statmount() without
thinking about the order.   I guess we can change the order back in
both syscalls?
I can just change the order. It's mostly a question of what is more
expensive. If there's such unpleasant side-effects... then sure I'll
reorder.
I also don't understand the reason behind the using the _noaudit()
variant.  Christian?
The reasoning is similar to the change in commit e7eda157c407 ("fs:
don't audit the capability check in simple_xattr_list()").

    "The check being unconditional may lead to unwanted denials reported by
    LSMs when a process has the capability granted by DAC, but denied by an
    LSM. In the case of SELinux such denials are a problem, since they can't
    be effectively filtered out via the policy and when not silenced, they
    produce noise that may hide a true problem or an attack."

So for system calls like listmount() that we can expect to be called a
lot of times (findmnt etc at some point) this would needlessly spam
dmesg without any value. We can always change that to an explicit
capable() later.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help