Thread (4 messages) 4 messages, 4 authors, 2019-06-18

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help