|
|
Message-ID: <CAGXu5jLr_kKagFb=prYcx83UPnh4MK7aLKUdSC6YjJmn7AW7_w@mail.gmail.com>
Date: Thu, 17 Dec 2015 12:34:35 -0800
From: Kees Cook <keescook@...omium.org>
To: "kernel-hardening@...ts.openwall.com" <kernel-hardening@...ts.openwall.com>
Cc: David Windsor <dave@...gbits.org>
Subject: Re: [RFC PATCH v2 12/12] lkdtm: add test for
atomic_t underflow/overflow
On Thu, Dec 17, 2015 at 6:57 AM, David Windsor <dave@...gbits.org> wrote:
> dmesg output of running this LKDTM test:
>
> [187095.475573] lkdtm: No crash points registered, enable through debugfs
> [187118.020257] lkdtm: Performing direct entry WRAP_ATOMIC
> [187118.030045] lkdtm: attempting atomic underflow
> [187118.030929] PAX: refcount overflow detected in: bash:1790, uid/euid: 0/0
> [187118.071667] PAX: refcount overflow occured at: lkdtm_do_action+0x19e/0x400 [lkdtm]
> [187118.081423] CPU: 3 PID: 1790 Comm: bash Not tainted 4.2.6-pax-refcount-split+ #2
> [187118.083403] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
> [187118.102596] task: ffff8800da8de040 ti: ffff8800da8e4000 task.ti: ffff8800da8e4000
> [187118.111321] RIP: 0010:[<ffffffffc00fc2fe>] [<ffffffffc00fc2fe>] lkdtm_do_action+0x19e/0x400 [lkdtm]
> ...
> [187118.128074] lkdtm: attempting atomic overflow
> [187118.128080] PAX: refcount overflow detected in: bash:1790, uid/euid: 0/0
> [187118.128082] PAX: refcount overflow occured at: lkdtm_do_action+0x1b6/0x400 [lkdtm]
> [187118.128085] CPU: 3 PID: 1790 Comm: bash Not tainted 4.2.6-pax-refcount-split+ #2
> [187118.128086] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
> [187118.128088] task: ffff8800da8de040 ti: ffff8800da8e4000 task.ti: ffff8800da8e4000
> [187118.128092] RIP: 0010:[<ffffffffc00fc316>] [<ffffffffc00fc316>] lkdtm_do_action+0x1b6/0x400 [lkdtm]
>
> Signed-off-by: David Windsor <dave@...gbits.org>
Yay tests! :)
Acked-by: Kees Cook <keescook@...omium.org>
-Kees
> ---
> drivers/misc/lkdtm.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/drivers/misc/lkdtm.c b/drivers/misc/lkdtm.c
> index b5abe34..5002747 100644
> --- a/drivers/misc/lkdtm.c
> +++ b/drivers/misc/lkdtm.c
> @@ -104,6 +104,7 @@ enum ctype {
> CT_ACCESS_USERSPACE,
> CT_WRITE_RO,
> CT_WRITE_KERN,
> + CT_WRAP_ATOMIC
> };
>
> static char* cp_name[] = {
> @@ -141,6 +142,7 @@ static char* cp_type[] = {
> "ACCESS_USERSPACE",
> "WRITE_RO",
> "WRITE_KERN",
> + "WRAP_ATOMIC"
> };
>
> static struct jprobe lkdtm;
> @@ -522,6 +524,17 @@ static void lkdtm_do_action(enum ctype which)
> do_overwritten();
> break;
> }
> + case CT_WRAP_ATOMIC: {
> + atomic_t under = ATOMIC_INIT(INT_MIN);
> + atomic_t over = ATOMIC_INIT(INT_MAX);
> +
> + pr_info("attempting atomic underflow\n");
> + atomic_dec(&under);
> + pr_info("attempting atomic overflow\n");
> + atomic_inc(&over);
> +
> + return;
> + }
> case CT_NONE:
> default:
> break;
> --
> 2.5.0
>
>
--
Kees Cook
Chrome OS & Brillo Security
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.