lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20170727160205.a20b1af3d5e88d493993dbf2@kernel.org>
Date:   Thu, 27 Jul 2017 16:02:05 +0900
From:   Masami Hiramatsu <mhiramat@...nel.org>
To:     Denys Vlasenko <vda.linux@...glemail.com>
Cc:     Ingo Molnar <mingo@...nel.org>, linux-kernel@...r.kernel.org,
        x86@...nel.org
Subject: Re: Doubled "opcode != 0x9a" check

On Wed, 26 Jul 2017 21:55:34 +0200
Denys Vlasenko <vda.linux@...glemail.com> wrote:

> commit bd0b90676c30fe640e7ead919b3e38846ac88ab7
> Author: Masami Hiramatsu <mhiramat@...nel.org>
> Date:   Wed Mar 29 13:56:56 2017 +0900
> 
>     kprobes/x86: Fix kprobe-booster not to boost far call instructions
> 
>     Fix the kprobe-booster not to boost far call instruction,
>     because a call may store the address in the single-step
>     execution buffer to the stack, which should be modified
>     after single stepping.
> 
>     Currently, this instruction will be filtered as not
>     boostable in resume_execution(), so this is not a
>     critical issue.
> ...        case 0x70:
>                 return 0; /* can't boost conditional jump */
> +       case 0x90:
> +               return opcode != 0x9a;  /* can't boost call far */
>         case 0xc0:
> 
> 
> Masami. You missed the fact that later, there is this:

Oops, right. Hmm, it should be reverted.
Ingo, could you revert this commit?

Thank you!

> 
>         default:
>                 /* segment override prefixes are boostable */
>                 if (opcode == 0x26 || opcode == 0x36 || opcode == 0x3e)
>                         goto retry; /* prefixes */
>                 /* CS override prefix and call are not boostable */
>                 return (opcode != 0x2e && opcode != 0x9a);
>                                           ^^^^^^^^^^^^^^^^


-- 
Masami Hiramatsu <mhiramat@...nel.org>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ