Re: [PATCH] tracing: do not leak kernel addresses

From: Jann Horn
Date: Fri Jul 27 2018 - 09:41:03 EST


On Fri, Jul 27, 2018 at 2:07 PM Jordan Glover
<Golden_Miller83@xxxxxxxxxxxxx> wrote:
>
> On July 27, 2018 12:15 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> > On Thu, 26 Jul 2018 09:52:11 -0700
> > Nick Desaulniers ndesaulniers@xxxxxxxxxx wrote:
> >
> > > See the section "Kernel addresses" in
> > > Documentation/security/self-protection. IIRC, the issue is that a
> > > process may have CAP_SYSLOG but not necessarily CAP_SYS_ADMIN (so it
> > > can read dmesg, but not necessarily issue a sysctl to change
> > > kptr_restrict), get compromised and used to leak kernel addresses,
> > > which can then be used to defeat KASLR.
> >
> > But the code doesn't go to dmesg. It's only available
> > via /sys/kernel/debug/tracing/printk_formats which is only available
> > via root. Nobody else has access to that directory.
> >
> > -- Steve
>
> I think the point was that when we take capabilities into account the root
> privileges aren't unequivocal anymore. The 'root' owned process with only
> 'CAP_SYSLOG' shouldn't have access to /sys/kernel/debug/tracing/printk_formats

Then they shouldn't have access to debugfs at all, right?