On Tue, Nov 7, 2017 at 4:59 PM, Linus Torvalds <torva...@linux-foundation.org> wrote: > > For example, maybe /proc/kallsyms could just default to not showing > values to non-root users. > > Something like the attached TOTALLY UNTESTED patch. It's meant more as > an RFC, not for application, but it's also meant to show how we can > tailor the behavior for specific workflow issues.
It seems to work, except I got the condition wrong for sysctl_perf_event_paranoid. It should if if (sysctl_perf_event_paranoid <= 1) return 1; rather than "<= 0", because '1' still means "allow kernel profiling" (and the default value is "2"). But I don't know if there is anything else than the profiling code that _really_ wants access to /proc/kallsyms in user space as a regular user. That said, that patch also fixes the /proc/kallsyms root check, in that now you can do: sudo head < /proc/kallsyms and it still shows all zeroes - because the file was *opened* as a normal user. That's how UNIX file access security works, and how it is fundamentally supposed to work (ie passing a file descriptor to a sui program doesn't magically make it gain privileges). Anyway, I'm obviously not going to commit that patch now, but I'd be happy to try it for the 4.15 merge window, to see if we can close /proc/kallsyms without people screaming.. Linus