Re: [PATCH 2/2] x86: Discard .note.gnu.property sections in vmlinux

From: Kees Cook
Date: Thu Jan 30 2020 - 15:08:11 EST


On Thu, Jan 30, 2020 at 12:04:54PM -0800, H.J. Lu wrote:
> > I don't understand this. "may not be incompatible"? Is there an error
> > generated? If so, what does it look like?
>
> When -mx86-used-note=yes is passed to assembler, with my patch, I got
>
> [hjl@gnu-skx-1 linux]$ readelf -n vmlinux
>
> Displaying notes found in: .notes
> Owner Data size Description
> Xen 0x00000006 Unknown note type: (0x00000006)
> description data: 6c 69 6e 75 78 00
> Xen 0x00000004 Unknown note type: (0x00000007)
> description data: 32 2e 36 00
> Xen 0x00000008 Unknown note type: (0x00000005)
> description data: 78 65 6e 2d 33 2e 30 00
> Xen 0x00000008 Unknown note type: (0x00000003)
> description data: 00 00 00 80 ff ff ff ff
> Xen 0x00000008 Unknown note type: (0x0000000f)
> description data: 00 00 00 00 80 00 00 00
> Xen 0x00000008 NT_VERSION (version)
> description data: 80 a1 ba 82 ff ff ff ff
> Xen 0x00000008 NT_ARCH (architecture)
> description data: 00 10 00 81 ff ff ff ff
> Xen 0x00000029 Unknown note type: (0x0000000a)
> description data: 21 77 72 69 74 61 62 6c 65 5f 70 61 67 65 5f 74
> 61 62 6c 65 73 7c 70 61 65 5f 70 67 64 69 72 5f 61 62 6f 76 65 5f 34
> 67 62
> Xen 0x00000004 Unknown note type: (0x00000011)
> description data: 01 88 00 00
> Xen 0x00000004 Unknown note type: (0x00000009)
> description data: 79 65 73 00
> Xen 0x00000008 Unknown note type: (0x00000008)
> description data: 67 65 6e 65 72 69 63 00
> Xen 0x00000010 Unknown note type: (0x0000000d)
> description data: 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
> Xen 0x00000004 Unknown note type: (0x0000000e)
> description data: 01 00 00 00
> Xen 0x00000004 Unknown note type: (0x00000010)
> description data: 01 00 00 00
> Xen 0x00000008 Unknown note type: (0x0000000c)
> description data: 00 00 00 00 00 80 ff ff
> Xen 0x00000008 Unknown note type: (0x00000004)
> description data: 00 00 00 00 00 00 00 00
> GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
> Build ID: 11c73de2922f593e1b35b92ab3c70eaa1a80fa83
> Linux 0x00000018 OPEN
> description data: 35 2e 33 2e 39 2d 32 30 30 2e 30 2e 66 63 33 30
> 2e 78 38 36 5f 36 34 00
> Xen 0x00000008 Unknown note type: (0x00000012)
> description data: 70 04 00 01 00 00 00 00
> [hjl@gnu-skx-1 linux]$
>
> Without my patch,
>
> [hjl@gnu-skx-1 linux]$ readelf -n vmlinux
>
> Displaying notes found in: .notes
> Owner Data size Description
> Xen 0x00000006 Unknown note type: (0x00000006)
> description data: 6c 69 6e 75 78 00
> Xen 0x00000004 Unknown note type: (0x00000007)
> description data: 32 2e 36 00
> xen-3.0 0x00000005 Unknown note type: (0x006e6558)
> description data: 08 00 00 00 03
> readelf: Warning: note with invalid namesz and/or descsz found at offset 0x50
> readelf: Warning: type: 0xffffffff, namesize: 0x006e6558, descsize:
> 0x80000000, alignment: 8
> [hjl@gnu-skx-1 linux]$

What is the source of this failure? Does readelf need updating instead?
Is the linking step producing an invalid section? It seems like
discarding the properties isn't the right solution here?

--
Kees Cook