lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 23 Sep 2021 16:49:17 -0700
From:   Vito Caputo <>
To:     Kees Cook <>
Cc:     Thomas Gleixner <>,
        Josh Poimboeuf <>,
        Vito Caputo <>,
        Ingo Molnar <>, Borislav Petkov <>,
        "H. Peter Anvin" <>, Jens Axboe <>,
        Mark Rutland <>,
        Peter Zijlstra <>,
        Stefan Metzmacher <>,
        Andy Lutomirski <>,
        Lai Jiangshan <>,
        Christian Brauner <>,
        Andrew Morton <>,
        "" <>,
        Daniel Bristot de Oliveira <>,
        Michael WeiƟ <>,
        Anand K Mistry <>,
        Alexey Gladkov <>,
        Michal Hocko <>, Helge Deller <>,
        Dave Hansen <>,
        Andrea Righi <>,
        Ohhoon Kwon <>,
        Kalesh Singh <>,
        YiFei Zhu <>,
        "Eric W. Biederman" <>,,,,
Subject: Re: [PATCH] proc: Disable /proc/$pid/wchan

On Thu, Sep 23, 2021 at 04:31:05PM -0700, Kees Cook wrote:
> The /proc/$pid/wchan file has been broken by default on x86_64 for 4
> years now[1]. As this remains a potential leak of either kernel
> addresses (when symbolization fails) or limited observation of kernel
> function progress, just remove the contents for good.
> Unconditionally set the contents to "0" and also mark the wchan
> field in /proc/$pid/stat with 0.
> This leaves kernel/sched/fair.c as the only user of get_wchan(). But
> again, since this was broken for 4 years, was this profiling logic
> actually doing anything useful?
> [1]
> Cc: Josh Poimboeuf <>
> Cc: Vito Caputo <>
> Signed-off-by: Kees Cook <>

Please don't deliberately break WCHANs wholesale.  This is a very
useful tool for sysadmins to get a vague sense of where processes are
spending time in the kernel on production systems without affecting
performance or having to restart things under instrumentation.

I don't see how providing the symbol name of a given task's kernel
function, especially if shallow near the user->kernel entrypoint, is a
worrisome information leak.  Just make sure it's not failing open with
addresses like my original report documented seems to happen
spuriously as-is w/kallsyms.

When I worked full-time as a sysadmin WCHAN's were regularly the first
thing to look at in `ps -o stat,wchan | grep D` when things were
falling over.  e.g.:

root@...lls:/root# ps -o stat,wchan | grep D
D    io_schedule

Furthermore this is a well documented on dead trees and understood
*nix/posix system observation technique.  Even the POSIX ps(1) man
page documents it:

Frankly I'm a bit mortified that I have to write this email.

Today I'm hoping to test Josh's patch @

Vito Caputo

Powered by blists - more mailing lists