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

Re: RFC: Update x86 psABI to support shadow stac



On 06/28/2017 01:21 PM, H.J. Lu wrote:
> On Wed, Jun 28, 2017 at 2:58 AM, Florian Weimer <fweimer@redhat.com> wrote:
>> On 06/22/2017 08:44 PM, H.J. Lu wrote:
>>>> The responsibilities for compliance are split between caller and callee,
>>>> which can live in different shared objects.  I think it would be prudent
>>>> to formulate the requirement in such a way that compliance can be
>>>> checked by looking at one DSO in isolation.
>>
>>> What do you mean by it?
>>
>> I suggest to word the ABI requirement in such a way that it is possible
>> to verify if a shared object complies with it isolation, independent of
>> how its functions are called.
>>
> 
> 99% of existing binaries are compatible with shadow stack.

I find that surprising, or does this number to refer to x86-64 binaries
only?

> It is hard
> to tell just by looking at assembly instructions.  If shadow stack is enabled,
> compiler should turn on the SHSTK bit in output:
> 
> [hjl@gnu-tools-1 32]$ readelf -n crtprec32.o
> 
> Displaying notes found in: .note.gnu.property
>   Owner                 Data size Description
>   GNU                  0x0000000c NT_GNU_PROPERTY_TYPE_0
>       Properties: x86 feature: IBT
>   GNU                  0x0000000c NT_GNU_PROPERTY_TYPE_0
>       Properties: x86 feature: SHSTK
> [hjl@gnu-tools-1 32]$
> 
> I don't know if it is sufficient for verification.

The ABI document needs to specify what the flag means.  I don't think
it's sufficient to essentially say, “the toolchain did or did not do
some unspecified stuff and we believe the binary is now compatible with
the shadow stack feature”.

Florian