[PATCH] arm64/vdso: Discard .note.gnu.property sections in vDSO

Ard Biesheuvel ardb at kernel.org
Wed Apr 28 09:51:38 BST 2021


On Wed, 28 Apr 2021 at 00:58, Kees Cook <keescook at chromium.org> wrote:
>
> On Fri, Apr 23, 2021 at 01:51:59PM -0700, Bill Wendling wrote:
> > The arm64 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 the kernel linker script only contains a single
> > NOTE segment:
> >
> >   PHDRS
> >   {
> >     text    PT_LOAD    FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
> >     dynamic PT_DYNAMIC FLAGS(4);               /* PF_R */
> >     note    PT_NOTE    FLAGS(4);               /* PF_R */
> >   }
> >
> > The NOTE segment generated by the vDSO linker script is aligned to 4 bytes.
> > But the .note.gnu.property section must be aligned to 8 bytes on arm64.
> >
> >   $ readelf -n vdso64.so
> >
> >   Displaying notes found in: .note
> >     Owner                Data size      Description
> >     Linux                0x00000004     Unknown note type: (0x00000000)
> >      description data: 06 00 00 00
> >   readelf: Warning: note with invalid namesz and/or descsz found at offset 0x20
> >   readelf: Warning:  type: 0x78, namesize: 0x00000100, descsize: 0x756e694c, alignment: 8
> >
> > Since the note.gnu.property section in the vDSO is not checked by the
> > dynamic linker, discard the .note.gnu.property sections in the vDSO.
> >
> > Similar to commit 4caffe6a28d31 ("x86/vdso: Discard .note.gnu.property
> > sections in vDSO"), but for arm64.
> >
> > Signed-off-by: Bill Wendling <morbo at google.com>
>
> Seems good to me. If we ever need the BTI markings, etc, for the vDSO,
> we can revisit it then.
>
> Reviewed-by: Kees Cook <keescook at chromium.org>
>

Acked-by: Ard Biesheuvel <ardb at kernel.org>



More information about the linux-arm-kernel mailing list