[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: xen (multiboot) binary gets corrupted ELF notes


  • To: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Mon, 13 Feb 2023 15:23:04 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pfbolgYzCDhcMaxxQAQDX5yOXjbITBK7avB1Hq5jSBc=; b=nsH1ObcNy4js9pUCydjkbFgckRr7zFfChrxVYOCaMaMZ/U+k+K/uUwjuN7WxIbsTs8QRBP6L86BhjvovDZEi8Wn2oVz0jp8e4ZM1yuJtMrhHWBW4ouz0HtP0HIXtuU9Jcd6zAdOG9nExazOKUsD9BW+EcRtdyuQMCyFFqQrPbPFDvY7/vZ7xs56jqCVVeoCP8MTZ3FWGNmKmOT+zqhq7ZuRDpyTdLJasR8ADhZkLTAOpEfA12pXDdaFj1LpOXyAqhIly9oZeElYKDIPMvdiFt4VR2n8Rz4JigfZHJzpKaQMOL0x2UHcvjYl8we6EE/exMYWDC2TiJO1LTwGT04824Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jk9UVWC4UHZsVVWSysqCMn5obZYUrvwpwZFN0Riy94AMkw0XJZu+2aTMCOf7oBhtMRRpLNc4v612B75dg3795Np2zBUxLuuwlhi0mVBOsgELYsS3Hutw1fvvFmmPo07cBASi3bksUmsQP3QETzoTZyun+jWdeglvgCXOn24jOB/B4H8IvXzghZ9nGwNJgYOVusy5UC8Iz2dk1QClNsWfDfjHhqN0pjyea28+rpTMqp1OOHArSpUL72mEaI7VNzPhzLYbYd4sMzkAnem+69EM7z0cP+IcEIs32vtgn3WjnEiKQ8zFU61HLpVo2PyXzSR/Gf9kiJgWM4+hLUAEfiRQIw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Delivery-date: Mon, 13 Feb 2023 14:23:11 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 13.02.2023 15:12, Marek Marczykowski-Górecki wrote:
> On Mon, Feb 13, 2023 at 01:53:21PM +0100, Jan Beulich wrote:
>> On 13.02.2023 12:14, Marek Marczykowski-Górecki wrote:
>>> Hi,
>>>
>>> I'm getting some ELF note issues on multiboot binary
>>> specifically:
>>> xen/xen: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
>>> statically linked, BuildID[sha1]=f7d2c37a4ad599b268f2f2d94bff3776d12649b3, 
>>> bad note description size 0xc0010001, stripped
>>>
>>> readelf additionally says:
>>>
>>>     Displaying notes found in: .note
>>>       Owner                Data size        Description
>>>       GNU                  0x00000014       NT_GNU_BUILD_ID (unique build 
>>> ID bitstring)
>>>         Build ID: c5825a0d08edc4d11b1138fedca6b14ce8ba7302
>>>       (NONE)               0x00000004       Unknown note type: (0x00000020)
>>>        description data: 05 00 00 00 
>>>     readelf: xen/xen: Warning: note with invalid namesz and/or descsz found 
>>> at offset 0x34
>>>     readelf: xen/xen: Warning:  type: 0x4, namesize: 0x00554e47, descsize: 
>>> 0xc0010001, alignment: 4
>>>
>>> Grub doesn't care, but launching such xen with kexec doesn't work.
>>>
>>> Initially found when booting Xen via Heads: 
>>> https://openqa.qubes-os.org/tests/60151#step/install_startup/11
>>>
>>> Andy says:
>>>> yeah, I've seen the same on XTF
>>>> binutil's recent elf notes for CET compatibility use an unsigned long
>>>> so they're not compatible when we build as 64bit and then re-package as 32
>>>> I think we need to strip all elf notes in mkelf32
>>
>> Instead of complicating mkelf32 (we want to retain at least the build-id
>> note, after all, and for PVH_GUEST builds also .note.Xen) why don't we
>> discard the unwanted/unneeded notes then from the linker script, just
>> like we already do for xen.efi?
> 
> Ok, this seems to help:
> 
> ---8<----
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 8930e14fc40e..f0831bd677e7 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -192,13 +192,6 @@ SECTIONS
>  #endif
>  #endif
>  
> -#ifndef EFI
> -  /* Retain these just for the purpose of possible analysis tools. */
> -  DECL_SECTION(.note) {
> -       *(.note.*)
> -  } PHDR(note) PHDR(text)
> -#endif
> -
>    _erodata = .;
>  
>    . = ALIGN(SECTION_ALIGN);
> ---8<---
> 
> The comment suggests some notes could be useful, but given they are
> broken anyway and nobody complained so far, maybe not really?

Well, much depends on those unspecified analysis tools.

Jan



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.