Re: [PATCH] binfmt_elf: Extract .note.gnu.property from an ELF file
From: Yu-cheng Yu <hidden>
Date: 2019-06-26 17:38:49
Also in:
linux-arch, linux-doc, linux-mm, lkml
On Wed, 2019-06-26 at 10:14 -0700, Andy Lutomirski wrote:
On Thu, May 2, 2019 at 4:10 AM Dave Martin [off-list ref] wrote:quoted
On Wed, May 01, 2019 at 02:12:17PM -0700, Yu-cheng Yu wrote:quoted
An ELF file's .note.gnu.property indicates features the executable file can support. For example, the property GNU_PROPERTY_X86_FEATURE_1_AND indicates the file supports GNU_PROPERTY_X86_FEATURE_1_IBT and/or GNU_PROPERTY_X86_FEATURE_1_SHSTK.
[...]
Where did PT_GNU_PROPERTY come from? Are there actual docs for it? Can someone here tell us what the actual semantics of this new ELF thingy are? From some searching, it seems like it's kind of an ELF note but kind of not. An actual description would be fantastic. Also, I don't think there's any actual requirement that the upstream kernel recognize existing CET-enabled RHEL 8 binaries as being CET-enabled. I tend to think that RHEL 8 jumped the gun here. While the upstream kernel should make some reasonble effort to make sure that RHEL 8 binaries will continue to run, I don't see why we need to go out of our way to keep the full set of mitigations available for binaries that were developed against a non-upstream kernel. In fact, if we handle the legacy bitmap differently from RHEL 8, we may *have* to make sure that we don't recognize existing RHEL 8 binaries as CET-enabled.
We have worked out the issue. Linux will look at only PT_GNU_PROPERTY, which is a shortcut pointing directly to .note.gnu.property. I have an updated patch, and will send it out (although it is not yet perfect). The Linux gABI extension draft is here: https://github.com/hjl-tools/linux-abi/w iki/linux-abi-draft.pdf. Yu-cheng