2019-03-30 18:47:36

by Matteo Croce

[permalink] [raw]
Subject: [PATCH] arm64/vdso: don't leak kernel addresses

Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"),
two obfuscated kernel pointer are printed at every boot:

vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))

Remove the addresses from the print, which turns into a more discrete:

vdso: 2 pages (1 code, 1 data)

Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
Signed-off-by: Matteo Croce <[email protected]>
---
arch/arm64/kernel/vdso.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c
index 2d419006ad43..fdfee0ef5bc5 100644
--- a/arch/arm64/kernel/vdso.c
+++ b/arch/arm64/kernel/vdso.c
@@ -146,8 +146,8 @@ static int __init vdso_init(void)
}

vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
- pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
- vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
+ pr_info("vdso: %ld pages (%ld code, %ld data)\n",
+ vdso_pages + 1, vdso_pages, 1L);

/* Allocate the vDSO pagelist, plus a page for the data. */
vdso_pagelist = kcalloc(vdso_pages + 1, sizeof(struct page *),
--
2.19.1



2019-03-30 19:41:57

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] arm64/vdso: don't leak kernel addresses


On 3/31/2019 12:16 AM, Matteo Croce wrote:
> Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"),
> two obfuscated kernel pointer are printed at every boot:
>
> vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
>
> Remove the addresses from the print, which turns into a more discrete:
>
> vdso: 2 pages (1 code, 1 data)
>
> Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
> Signed-off-by: Matteo Croce <[email protected]>
Reviewed-by: Mukesh Ojha <[email protected]>

Cheers,
-Mukesh


> ---
> arch/arm64/kernel/vdso.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c
> index 2d419006ad43..fdfee0ef5bc5 100644
> --- a/arch/arm64/kernel/vdso.c
> +++ b/arch/arm64/kernel/vdso.c
> @@ -146,8 +146,8 @@ static int __init vdso_init(void)
> }
>
> vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
> - pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
> - vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
> + pr_info("vdso: %ld pages (%ld code, %ld data)\n",
> + vdso_pages + 1, vdso_pages, 1L);
>
> /* Allocate the vDSO pagelist, plus a page for the data. */
> vdso_pagelist = kcalloc(vdso_pages + 1, sizeof(struct page *),

2019-04-01 07:40:11

by Mark Rutland

[permalink] [raw]
Subject: Re: [PATCH] arm64/vdso: don't leak kernel addresses

On Sat, Mar 30, 2019 at 07:46:38PM +0100, Matteo Croce wrote:
> Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"),
> two obfuscated kernel pointer are printed at every boot:
>
> vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
>
> Remove the addresses from the print, which turns into a more discrete:
>
> vdso: 2 pages (1 code, 1 data)
>
> Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
> Signed-off-by: Matteo Croce <[email protected]>
> ---
> arch/arm64/kernel/vdso.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c
> index 2d419006ad43..fdfee0ef5bc5 100644
> --- a/arch/arm64/kernel/vdso.c
> +++ b/arch/arm64/kernel/vdso.c
> @@ -146,8 +146,8 @@ static int __init vdso_init(void)
> }
>
> vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
> - pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
> - vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
> + pr_info("vdso: %ld pages (%ld code, %ld data)\n",
> + vdso_pages + 1, vdso_pages, 1L);

It's probably better to drop this pr_info() entirely. The number of data and
code pages hasn't changed since this was upstreamed, and the pointers were the
useful part for debugging.

If you respin this to delete the pr_info() entirely, then feel free to add:

Acked-by: Mark Rutland <[email protected]>

Mark.