Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1573540 > unrolled thread

Re: /proc/timer_list leaks the real pids of the associated processes

Started byKees Cook <keescook@google.com>
First post2017-02-04 00:50 +0100
Last post2017-02-08 00:40 +0100
Articles 6 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: /proc/timer_list leaks the real pids of the associated processes Kees Cook <keescook@google.com> - 2017-02-04 00:50 +0100
    Re: /proc/timer_list leaks the real pids of the associated  processes Thomas Gleixner <tglx@linutronix.de> - 2017-02-07 23:50 +0100
      Re: /proc/timer_list leaks the real pids of the associated processes Jessica Frazelle <me@jessfraz.com> - 2017-02-08 00:00 +0100
        Re: /proc/timer_list leaks the real pids of the associated  processes Thomas Gleixner <tglx@linutronix.de> - 2017-02-08 10:50 +0100
      Re: /proc/timer_list leaks the real pids of the associated processes Kees Cook <keescook@google.com> - 2017-02-08 00:30 +0100
        Re: /proc/timer_list leaks the real pids of the associated processes Kees Cook <keescook@google.com> - 2017-02-08 00:40 +0100

#1573540 — Re: /proc/timer_list leaks the real pids of the associated processes

FromKees Cook <keescook@google.com>
Date2017-02-04 00:50 +0100
SubjectRe: /proc/timer_list leaks the real pids of the associated processes
Message-ID<t6VM5-g9-9@gated-at.bofh.it>
On Fri, Feb 3, 2017 at 2:29 PM, Xing Gao <xgao01@email.wm.edu> wrote:
> Dear Thomas and Kees,
>
> I posted a bug report on bugzilla, and John asked me to send it the lkml.
>
> Here is the link, https://bugzilla.kernel.org/show_bug.cgi?id=193921
>
> Please cc to me when you reply this email.
>
> And please check the information below.
>
> The pseudo file /proc/timer_list leaks the real pids of the associated
> processes.
>
> The function print_timer(kernel/time/timer_list.c) displays
> timer->start_pid, which is set inside the function
> __timer_stats_timer_set_start_info (kernel/time/timer.c). This is the real
> pid, rather than the pid in the pid namespace. If the user within a
> container retrieves the content of /proc/timer_list, this file will leak the
> real pid of the associated process.

I feel like this has been pointed out before, but I can't find the
email about it. Regardless, yeah, this looks true:

        SEQ_printf(m, ", %s/%d", tmp, timer->start_pid);

 #11: <0000000000000000>, hrtimer_wakeup, S:01, do_nanosleep, cron/2570

Seems like this should be made namespace aware... (and why is this
file needed at all? Seems like it should live in debugfs not proc).

-Kees

-- 
Kees Cook
Pixel Security

[toc] | [next] | [standalone]


#1576138 — Re: /proc/timer_list leaks the real pids of the associated processes

FromThomas Gleixner <tglx@linutronix.de>
Date2017-02-07 23:50 +0100
SubjectRe: /proc/timer_list leaks the real pids of the associated processes
Message-ID<t8mKf-q3-31@gated-at.bofh.it>
In reply to#1573540
On Fri, 3 Feb 2017, Kees Cook wrote:

> On Fri, Feb 3, 2017 at 2:29 PM, Xing Gao <xgao01@email.wm.edu> wrote:
> > Dear Thomas and Kees,
> >
> > I posted a bug report on bugzilla, and John asked me to send it the lkml.
> >
> > Here is the link, https://bugzilla.kernel.org/show_bug.cgi?id=193921
> >
> > Please cc to me when you reply this email.
> >
> > And please check the information below.
> >
> > The pseudo file /proc/timer_list leaks the real pids of the associated
> > processes.
> >
> > The function print_timer(kernel/time/timer_list.c) displays
> > timer->start_pid, which is set inside the function
> > __timer_stats_timer_set_start_info (kernel/time/timer.c). This is the real
> > pid, rather than the pid in the pid namespace. If the user within a
> > container retrieves the content of /proc/timer_list, this file will leak the
> > real pid of the associated process.
> 
> I feel like this has been pointed out before, but I can't find the
> email about it. Regardless, yeah, this looks true:
> 
>         SEQ_printf(m, ", %s/%d", tmp, timer->start_pid);
> 
>  #11: <0000000000000000>, hrtimer_wakeup, S:01, do_nanosleep, cron/2570
> 
> Seems like this should be made namespace aware... (and why is this
> file needed at all? Seems like it should live in debugfs not proc).

I'm fine with that.

The TIMER_STATS stuff should go away completely. If people are interested
in that information they can use the tracer which gives way better
data than that file.

Thanks,

	tglx
.

[toc] | [prev] | [next] | [standalone]


#1576141

FromJessica Frazelle <me@jessfraz.com>
Date2017-02-08 00:00 +0100
Message-ID<t8mTU-tp-17@gated-at.bofh.it>
In reply to#1576138
So I used to use this "feature" as a hack to see if something was
running in a k8s cluster or not because fluentd gives a lot of things
away. Runc basically decided to mask this file so it stopped happening
though. But I think namespace aware is the right decision.


On Tue, Feb 7, 2017 at 2:48 PM Thomas Gleixner <tglx@linutronix.de> wrote:
>
> On Fri, 3 Feb 2017, Kees Cook wrote:
>
> > On Fri, Feb 3, 2017 at 2:29 PM, Xing Gao <xgao01@email.wm.edu> wrote:
> > > Dear Thomas and Kees,
> > >
> > > I posted a bug report on bugzilla, and John asked me to send it the lkml.
> > >
> > > Here is the link, https://bugzilla.kernel.org/show_bug.cgi?id=193921
> > >
> > > Please cc to me when you reply this email.
> > >
> > > And please check the information below.
> > >
> > > The pseudo file /proc/timer_list leaks the real pids of the associated
> > > processes.
> > >
> > > The function print_timer(kernel/time/timer_list.c) displays
> > > timer->start_pid, which is set inside the function
> > > __timer_stats_timer_set_start_info (kernel/time/timer.c). This is the real
> > > pid, rather than the pid in the pid namespace. If the user within a
> > > container retrieves the content of /proc/timer_list, this file will leak the
> > > real pid of the associated process.
> >
> > I feel like this has been pointed out before, but I can't find the
> > email about it. Regardless, yeah, this looks true:
> >
> >         SEQ_printf(m, ", %s/%d", tmp, timer->start_pid);
> >
> >  #11: <0000000000000000>, hrtimer_wakeup, S:01, do_nanosleep, cron/2570
> >
> > Seems like this should be made namespace aware... (and why is this
> > file needed at all? Seems like it should live in debugfs not proc).
>
> I'm fine with that.
>
> The TIMER_STATS stuff should go away completely. If people are interested
> in that information they can use the tracer which gives way better
> data than that file.
>
> Thanks,
>
>         tglx
> .

[toc] | [prev] | [next] | [standalone]


#1576400 — Re: /proc/timer_list leaks the real pids of the associated processes

FromThomas Gleixner <tglx@linutronix.de>
Date2017-02-08 10:50 +0100
SubjectRe: /proc/timer_list leaks the real pids of the associated processes
Message-ID<t8x2X-74c-27@gated-at.bofh.it>
In reply to#1576141
On Tue, 7 Feb 2017, Jessica Frazelle wrote:

> So I used to use this "feature" as a hack to see if something was
> running in a k8s cluster or not because fluentd gives a lot of things
> away.

That file does not tell you at all whether something is running or not. It
merily tells you that there are timers queued.

> Runc basically decided to mask this file so it stopped happening
> though. But I think namespace aware is the right decision.

Unless you can come up with a real good argument why this is usefull beyond
debugging and crystal ball hackery, it's going to go away.

Thanks,

	tglx

[toc] | [prev] | [next] | [standalone]


#1576168

FromKees Cook <keescook@google.com>
Date2017-02-08 00:30 +0100
Message-ID<t8nmW-ST-23@gated-at.bofh.it>
In reply to#1576138
On Tue, Feb 7, 2017 at 2:48 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Fri, 3 Feb 2017, Kees Cook wrote:
>
>> On Fri, Feb 3, 2017 at 2:29 PM, Xing Gao <xgao01@email.wm.edu> wrote:
>> > Dear Thomas and Kees,
>> >
>> > I posted a bug report on bugzilla, and John asked me to send it the lkml.
>> >
>> > Here is the link, https://bugzilla.kernel.org/show_bug.cgi?id=193921
>> >
>> > Please cc to me when you reply this email.
>> >
>> > And please check the information below.
>> >
>> > The pseudo file /proc/timer_list leaks the real pids of the associated
>> > processes.
>> >
>> > The function print_timer(kernel/time/timer_list.c) displays
>> > timer->start_pid, which is set inside the function
>> > __timer_stats_timer_set_start_info (kernel/time/timer.c). This is the real
>> > pid, rather than the pid in the pid namespace. If the user within a
>> > container retrieves the content of /proc/timer_list, this file will leak the
>> > real pid of the associated process.
>>
>> I feel like this has been pointed out before, but I can't find the
>> email about it. Regardless, yeah, this looks true:
>>
>>         SEQ_printf(m, ", %s/%d", tmp, timer->start_pid);
>>
>>  #11: <0000000000000000>, hrtimer_wakeup, S:01, do_nanosleep, cron/2570
>>
>> Seems like this should be made namespace aware... (and why is this
>> file needed at all? Seems like it should live in debugfs not proc).
>
> I'm fine with that.
>
> The TIMER_STATS stuff should go away completely. If people are interested
> in that information they can use the tracer which gives way better
> data than that file.

As in, entirely remote CONFIG_TIMER_STATS?

-Kees

-- 
Kees Cook
Pixel Security

[toc] | [prev] | [next] | [standalone]


#1576172

FromKees Cook <keescook@google.com>
Date2017-02-08 00:40 +0100
Message-ID<t8nwB-W4-11@gated-at.bofh.it>
In reply to#1576168
On Tue, Feb 7, 2017 at 3:24 PM, Kees Cook <keescook@google.com> wrote:
> On Tue, Feb 7, 2017 at 2:48 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
>> On Fri, 3 Feb 2017, Kees Cook wrote:
>>
>>> On Fri, Feb 3, 2017 at 2:29 PM, Xing Gao <xgao01@email.wm.edu> wrote:
>>> > Dear Thomas and Kees,
>>> >
>>> > I posted a bug report on bugzilla, and John asked me to send it the lkml.
>>> >
>>> > Here is the link, https://bugzilla.kernel.org/show_bug.cgi?id=193921
>>> >
>>> > Please cc to me when you reply this email.
>>> >
>>> > And please check the information below.
>>> >
>>> > The pseudo file /proc/timer_list leaks the real pids of the associated
>>> > processes.
>>> >
>>> > The function print_timer(kernel/time/timer_list.c) displays
>>> > timer->start_pid, which is set inside the function
>>> > __timer_stats_timer_set_start_info (kernel/time/timer.c). This is the real
>>> > pid, rather than the pid in the pid namespace. If the user within a
>>> > container retrieves the content of /proc/timer_list, this file will leak the
>>> > real pid of the associated process.
>>>
>>> I feel like this has been pointed out before, but I can't find the
>>> email about it. Regardless, yeah, this looks true:
>>>
>>>         SEQ_printf(m, ", %s/%d", tmp, timer->start_pid);
>>>
>>>  #11: <0000000000000000>, hrtimer_wakeup, S:01, do_nanosleep, cron/2570
>>>
>>> Seems like this should be made namespace aware... (and why is this
>>> file needed at all? Seems like it should live in debugfs not proc).
>>
>> I'm fine with that.
>>
>> The TIMER_STATS stuff should go away completely. If people are interested
>> in that information they can use the tracer which gives way better
>> data than that file.
>
> As in, entirely remote CONFIG_TIMER_STATS?

s/remote/remove/

I'll send a patch...

-Kees

-- 
Kees Cook
Pixel Security

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web