From: tjakobi@math.uni-bielefeld.de (Tobias Jakobi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] drm/exynos: Print kernel pointers in a restricted form
Date: Wed, 15 Mar 2017 13:33:16 +0100 [thread overview]
Message-ID: <ac039bb8-c10a-63db-274a-796afaa5c970@math.uni-bielefeld.de> (raw)
In-Reply-To: <ee50f87d-d79e-d74e-25b3-091c49a5e1d4@samsung.com>
Hello Andrzej,
note that i had already pointed Krzysztof to that documentation in my
previous mail.
- Tobias
Andrzej Hajda wrote:
> 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
>
next prev parent reply other threads:[~2017-03-15 12:33 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20170314183912epcas4p2731fbe283583ca0e0183de39694dacfc@epcas4p2.samsung.com>
2017-03-14 18:38 ` [PATCH] drm/exynos: Print kernel pointers in a restricted form Krzysztof Kozlowski
2017-03-14 19:01 ` Tobias Jakobi
2017-03-14 19:08 ` Krzysztof Kozlowski
2017-03-14 19:17 ` Tobias Jakobi
2017-03-14 19:52 ` Krzysztof Kozlowski
2017-03-14 20:41 ` Tobias Jakobi
2017-03-15 7:32 ` Andrzej Hajda
2017-03-15 12:33 ` Tobias Jakobi [this message]
2017-03-15 4:50 ` Inki Dae
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ac039bb8-c10a-63db-274a-796afaa5c970@math.uni-bielefeld.de \
--to=tjakobi@math.uni-bielefeld.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).