Re: [PATCH v7 22/27] binfmt_elf: Extract .note.gnu.property from an ELF file
flat view
From: Florian Weimer <hidden>
Date: 2019-06-17 11:09:00
Also in:
linux-arch, linux-doc, linux-mm, lkml
* Dave Martin:
On Tue, Jun 11, 2019 at 12:31:34PM -0700, Yu-cheng Yu wrote:quoted
On Tue, 2019-06-11 at 12:41 +0100, Dave Martin wrote:quoted
On Mon, Jun 10, 2019 at 07:24:43PM +0200, Florian Weimer wrote:quoted
* Yu-cheng Yu:quoted
To me, looking at PT_GNU_PROPERTY and not trying to support anything is a logical choice. And it breaks only a limited set of toolchains. I will simplify the parser and leave this patch as-is for anyone who wants to back-port. Are there any objections or concerns?Red Hat Enterprise Linux 8 does not use PT_GNU_PROPERTY and is probably the largest collection of CET-enabled binaries that exists today.For clarity, RHEL is actively parsing these properties today?quoted
My hope was that we would backport the upstream kernel patches for CET, port the glibc dynamic loader to the new kernel interface, and be ready to run with CET enabled in principle (except that porting userspace libraries such as OpenSSL has not really started upstream, so many processes where CET is particularly desirable will still run without it). I'm not sure if it is a good idea to port the legacy support if it's not part of the mainline kernel because it comes awfully close to creating our own private ABI.I guess we can aim to factor things so that PT_NOTE scanning is available as a fallback on arches for which the absence of PT_GNU_PROPERTY is not authoritative.We can probably check PT_GNU_PROPERTY first, and fallback (based on ld-linux version?) to PT_NOTE scanning?For arm64, we can check for PT_GNU_PROPERTY and then give up unconditionally. For x86, we would fall back to PT_NOTE scanning, but this will add a bit of cost to binaries that don't have NT_GNU_PROPERTY_TYPE_0. The ld.so version doesn't tell you what ELF ABI a given executable conforms to. Since this sounds like it's largely a distro-specific issue, maybe there could be a Kconfig option to turn the fallback PT_NOTE scanning on?
I'm worried that this causes interop issues similarly to what we see with VSYSCALL today. If we need both and a way to disable it, it should be something like a personality flag which can be configured for each process tree separately. Ideally, we'd settle on one correct approach (i.e., either always process both, or only process PT_GNU_PROPERTY) and enforce that. Thanks, Florian