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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 30 Jan 2020 09:51:38 -0800
From:   "H.J. Lu" <hjl.tools@...il.com>
To:     Kees Cook <keescook@...omium.org>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        Andy Lutomirski <luto@...nel.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        Thomas Lendacky <Thomas.Lendacky@....com>,
        Sami Tolvanen <samitolvanen@...gle.com>,
        Heiko Carstens <heiko.carstens@...ibm.com>,
        Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
        "H . Peter Anvin" <hpa@...or.com>,
        "the arch/x86 maintainers" <x86@...nel.org>,
        Yu-cheng Yu <yu-cheng.yu@...el.com>
Subject: Re: [PATCH 2/2] x86: Discard .note.gnu.property sections in vmlinux

On Mon, Jan 27, 2020 at 3:34 PM Kees Cook <keescook@...omium.org> wrote:
>
> On Fri, Jan 24, 2020 at 10:18:19AM -0800, H.J. Lu wrote:
> > With the command-line option, -mx86-used-note=yes, the x86 assembler
> > in binutils 2.32 and above generates a program property note in a note
> > section, .note.gnu.property, to encode used x86 ISAs and features.
> > But x86 kernel linker script only contains a signle NOTE segment:
> >
> > PHDRS {
> >  text PT_LOAD FLAGS(5);
> >  data PT_LOAD FLAGS(6);
> >  percpu PT_LOAD FLAGS(6);
> >  init PT_LOAD FLAGS(7);
> >  note PT_NOTE FLAGS(0);
> > }
> > SECTIONS
> > {
> > ...
> >  .notes : AT(ADDR(.notes) - 0xffffffff80000000) { __start_notes = .; KEEP(*(.not
> > e.*)) __stop_notes = .; } :text :note
> > ...
> > }
> >
> > which may not be incompatible with note.gnu.property sections.  Since
> > note.gnu.property section in kernel image is unused, this patch discards
> > .note.gnu.property sections in kernel linker script by adding
> >
> >  /DISCARD/ : {
> >   *(.note.gnu.property)
> >  }
>
> I think this is happening in the wrong place? Shouldn't this be in the
> DISCARDS macro in include/asm-generic/vmlinux.lds.h instead?

Please read my commit message closely.   We can't discard .note.gnu.property
sections by adding .note.gnu.property to default discarded sections
since default
discarded sections are placed AFTER .notes sections in x86 kernel
linker scripts.

> > before .notes sections.  Since .exit.text and .exit.data sections are
> > discarded at runtime, it undefines EXIT_TEXT and EXIT_DATA to exclude
> > .exit.text and .exit.data sections from default discarded sections.
>
> This looks like a separate issue (though maybe related to DISCARDS)?

Here is the updated patch without  EXIT_TEXT and EXIT_DATA change.
I will submit a separate patch for it.

Thanks.

-- 
H.J.

View attachment "0002-x86-Discard-.note.gnu.property-sections-in-vmlinux.patch" of type "text/x-patch" (1814 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ