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


Groups > linux.kernel > #1601119

Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form

From Andrzej Hajda <a.hajda@samsung.com>
Newsgroups linux.kernel
Subject Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form
Date 2017-03-15 08:40 +0100
Message-ID <tlbHk-4pe-13@gated-at.bofh.it> (permalink)
References (2 earlier) <tkZZv-4D5-7@gated-at.bofh.it> <tl09c-4Iz-9@gated-at.bofh.it> <tl0LU-4YP-15@gated-at.bofh.it> <tlbHk-4pe-15@gated-at.bofh.it> <tl1yi-5BE-23@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hi Tobias,

On 14.03.2017 21:41, Tobias Jakobi wrote:
> Krzysztof Kozlowski wrote:
>> On Tue, Mar 14, 2017 at 08:17:35PM +0100, Tobias Jakobi wrote:
>>> Krzysztof Kozlowski wrote:
>>>> On Tue, Mar 14, 2017 at 08:01:41PM +0100, Tobias Jakobi wrote:
>>>>> Hello Krzysztof,
>>>>>
>>>>> I was wondering about the benefit of this. From a quick look these are
>>>>> all messages that end up in the kernel log / dmesg.
>>>>>
>>>>> IIRC %pK does nothing there, since dmest_restrict is supposed to be used
>>>>> to deny an unpriviliged user the access to the kernel log.
>>>>>
>>>>> Or am I missing something here?
>>>> These are regular printks so depending on kernel options (e.g. dynamic
>>>> debug, drm.debug) these might be printed also in the console. Of course
>>>> we could argue then if access to one of the consoles is worth
>>>> securing.
>>> This here suggests otherwise.
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/sysctl/kernel.txt#n388
>>>
>>> I have not tested this, but IIRC %pK is not honored by the kernel
>>> logging infrastucture. That's why dmesg_restrict is there.
>>>
>>> Correct me if I'm wrong.
>> The %pK will not help for dmesg or /proc/kmsg but it will help for
>> console (/dev/ttySACN, ttySN etc) because effectively it uses the same
>> vsprintf()/pointer() functions.
> Thanks for the explanation, I didn't know that there was a difference
> there. In that case, looks good to me.
>
>

Just to clarify %pK:

Documentation/printk-formats.txt:
        %pK     0x01234567 or 0x0123456789abcdef

        For printing kernel pointers which should be hidden from
unprivileged
        users. The behaviour of %pK depends on the kptr_restrict sysctl
- see
        Documentation/sysctl/kernel.txt for more details.

Documentation/sysctl/kernel.txt:

kptr_restrict:

This toggle indicates whether restrictions are placed on
exposing kernel addresses via /proc and other interfaces.

When kptr_restrict is set to (0), the default, there are no restrictions.

When kptr_restrict is set to (1), kernel pointers printed using the %pK
format specifier will be replaced with 0's unless the user has CAP_SYSLOG
and effective user and group ids are equal to the real ids. This is
because %pK checks are done at read() time rather than open() time, so
if permissions are elevated between the open() and the read() (e.g via
a setuid binary) then %pK will not leak kernel pointers to unprivileged
users. Note, this is a temporary solution only. The correct long-term
solution is to do the permission checks at open() time. Consider removing
world read permissions from files that use %pK, and using dmesg_restrict
to protect against uses of %pK in dmesg(8) if leaking kernel pointer
values to unprivileged users is a concern.

When kptr_restrict is set to (2), kernel pointers printed using
%pK will be replaced with 0's regardless of privileges.
---

Regards
Andrzej

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] drm/exynos: Print kernel pointers in a restricted form Krzysztof Kozlowski <krzk@kernel.org> - 2017-03-14 19:40 +0100
  Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Krzysztof Kozlowski <krzk@kernel.org> - 2017-03-14 20:10 +0100
    Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Tobias Jakobi <tjakobi@math.uni-bielefeld.de> - 2017-03-14 20:20 +0100
      Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Krzysztof Kozlowski <krzk@kernel.org> - 2017-03-14 21:00 +0100
        Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Tobias Jakobi <tjakobi@math.uni-bielefeld.de> - 2017-03-14 21:50 +0100
          Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Andrzej Hajda <a.hajda@samsung.com> - 2017-03-15 08:40 +0100
            Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Tobias Jakobi <tjakobi@math.uni-bielefeld.de> - 2017-03-15 13:40 +0100
  Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Tobias Jakobi <tjakobi@math.uni-bielefeld.de> - 2017-03-14 20:10 +0100
  Re: [PATCH] drm/exynos: Print kernel pointers in a restricted form Inki Dae <inki.dae@samsung.com> - 2017-03-15 06:00 +0100

csiph-web