* [PATCH] proc/sysctl: make protected_* world readable
@ 2020-07-09 23:51 Julius Hemanth Pitti
2020-07-10 4:31 ` Kees Cook
0 siblings, 1 reply; 3+ messages in thread
From: Julius Hemanth Pitti @ 2020-07-09 23:51 UTC (permalink / raw)
To: keescook, yzaikin, mcgrof
Cc: linux-kernel, linux-fsdevel, akpm, mingo, viro,
xe-linux-external, Julius Hemanth Pitti
protected_* files have 600 permissions which prevents
non-superuser from reading them.
Container like "AWS greengrass" refuse to launch unless
protected_hardlinks and protected_symlinks are set. When
containers like these run with "userns-remap" or "--user"
mapping container's root to non-superuser on host, they
fail to run due to denied read access to these files.
As these protections are hardly a secret, and do not
possess any security risk, making them world readable.
Though above greengrass usecase needs read access to
only protected_hardlinks and protected_symlinks files,
setting all other protected_* files to 644 to keep
consistency.
Fixes: 800179c9b8a1 ("fs: add link restrictions")
Signed-off-by: Julius Hemanth Pitti <jpitti@cisco.com>
---
kernel/sysctl.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index db1ce7a..aeca2fd 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -3223,7 +3223,7 @@ int proc_do_static_key(struct ctl_table *table, int write,
.procname = "protected_symlinks",
.data = &sysctl_protected_symlinks,
.maxlen = sizeof(int),
- .mode = 0600,
+ .mode = 0644,
.proc_handler = proc_dointvec_minmax,
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
@@ -3232,7 +3232,7 @@ int proc_do_static_key(struct ctl_table *table, int write,
.procname = "protected_hardlinks",
.data = &sysctl_protected_hardlinks,
.maxlen = sizeof(int),
- .mode = 0600,
+ .mode = 0644,
.proc_handler = proc_dointvec_minmax,
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
@@ -3241,7 +3241,7 @@ int proc_do_static_key(struct ctl_table *table, int write,
.procname = "protected_fifos",
.data = &sysctl_protected_fifos,
.maxlen = sizeof(int),
- .mode = 0600,
+ .mode = 0644,
.proc_handler = proc_dointvec_minmax,
.extra1 = SYSCTL_ZERO,
.extra2 = &two,
@@ -3250,7 +3250,7 @@ int proc_do_static_key(struct ctl_table *table, int write,
.procname = "protected_regular",
.data = &sysctl_protected_regular,
.maxlen = sizeof(int),
- .mode = 0600,
+ .mode = 0644,
.proc_handler = proc_dointvec_minmax,
.extra1 = SYSCTL_ZERO,
.extra2 = &two,
--
1.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] proc/sysctl: make protected_* world readable
2020-07-09 23:51 [PATCH] proc/sysctl: make protected_* world readable Julius Hemanth Pitti
@ 2020-07-10 4:31 ` Kees Cook
2020-07-29 0:03 ` Luis Chamberlain
0 siblings, 1 reply; 3+ messages in thread
From: Kees Cook @ 2020-07-10 4:31 UTC (permalink / raw)
To: Julius Hemanth Pitti, mingo, akpm
Cc: yzaikin, mcgrof, linux-kernel, linux-fsdevel, viro,
xe-linux-external, jannh
On Thu, Jul 09, 2020 at 04:51:15PM -0700, Julius Hemanth Pitti wrote:
> protected_* files have 600 permissions which prevents
> non-superuser from reading them.
>
> Container like "AWS greengrass" refuse to launch unless
> protected_hardlinks and protected_symlinks are set. When
> containers like these run with "userns-remap" or "--user"
> mapping container's root to non-superuser on host, they
> fail to run due to denied read access to these files.
>
> As these protections are hardly a secret, and do not
> possess any security risk, making them world readable.
>
> Though above greengrass usecase needs read access to
> only protected_hardlinks and protected_symlinks files,
> setting all other protected_* files to 644 to keep
> consistency.
>
> Fixes: 800179c9b8a1 ("fs: add link restrictions")
> Signed-off-by: Julius Hemanth Pitti <jpitti@cisco.com>
Acked-by: Kees Cook <keescook@chromium.org>
I had originally proposed it as 0644, but Ingo asked that it have
a more conservative default value[1]. I figured that given the settings
can be discovered easily, it's not worth much. And if there are legit
cases where things are improved, I don't have a problem switching this
back.
Ingo, any thoughts on this now, 8 years later in the age of containers?
:)
(One devil's advocate question: as a workaround, you are able to just
change those files to 0644 after mounting /proc, yes? But regardless,
why get in people's way for no justifiable reason.)
-Kees
[1] https://lore.kernel.org/lkml/20120105091704.GB3249@elte.hu/
--
Kees Cook
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] proc/sysctl: make protected_* world readable
2020-07-10 4:31 ` Kees Cook
@ 2020-07-29 0:03 ` Luis Chamberlain
0 siblings, 0 replies; 3+ messages in thread
From: Luis Chamberlain @ 2020-07-29 0:03 UTC (permalink / raw)
To: Kees Cook
Cc: Julius Hemanth Pitti, mingo, akpm, yzaikin, linux-kernel,
linux-fsdevel, viro, xe-linux-external, jannh
On Thu, Jul 09, 2020 at 09:31:37PM -0700, Kees Cook wrote:
> On Thu, Jul 09, 2020 at 04:51:15PM -0700, Julius Hemanth Pitti wrote:
> > protected_* files have 600 permissions which prevents
> > non-superuser from reading them.
> >
> > Container like "AWS greengrass" refuse to launch unless
> > protected_hardlinks and protected_symlinks are set. When
> > containers like these run with "userns-remap" or "--user"
> > mapping container's root to non-superuser on host, they
> > fail to run due to denied read access to these files.
> >
> > As these protections are hardly a secret, and do not
> > possess any security risk, making them world readable.
> >
> > Though above greengrass usecase needs read access to
> > only protected_hardlinks and protected_symlinks files,
> > setting all other protected_* files to 644 to keep
> > consistency.
> >
> > Fixes: 800179c9b8a1 ("fs: add link restrictions")
> > Signed-off-by: Julius Hemanth Pitti <jpitti@cisco.com>
>
> Acked-by: Kees Cook <keescook@chromium.org>
>
> I had originally proposed it as 0644, but Ingo asked that it have
> a more conservative default value[1]. I figured that given the settings
> can be discovered easily, it's not worth much. And if there are legit
> cases where things are improved, I don't have a problem switching this
> back.
If we're going to to do this, can we please document why these are
"protected" then?
Luis
>
> Ingo, any thoughts on this now, 8 years later in the age of containers?
> :)
>
> (One devil's advocate question: as a workaround, you are able to just
> change those files to 0644 after mounting /proc, yes? But regardless,
> why get in people's way for no justifiable reason.)
>
> -Kees
>
> [1] https://lore.kernel.org/lkml/20120105091704.GB3249@elte.hu/
>
> --
> Kees Cook
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-07-29 0:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-09 23:51 [PATCH] proc/sysctl: make protected_* world readable Julius Hemanth Pitti
2020-07-10 4:31 ` Kees Cook
2020-07-29 0:03 ` Luis Chamberlain
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.