Skip to content

Linux libsentry.so requires Execution Permissions on Stack #246

@Luminiferous348

Description

@Luminiferous348

Hello,

little issue I noticed, after Updating to 1.3.0, TriOS doesn't start any more on my System (openSUSE Tumbleweed - Linux) with this error:

./TriOS: error while loading shared libraries: libsentry.so: cannot enable executable stack as shared object requires: Permission denied

Turns out, the Stack for libsentry.so requires exec Permissions for this latest release (as seen with readelf). I've marked the line in this screenshot:

Image

As you can see, the Permission bits for the Stack are set to RWE.

After using execstack -c on the lib to clear the exec Permission, the Execute Bit is gone:

Image

And TriOS launches without any Issues.

Background: Execution permissions on the Stack is a Security issue, which is why modern Linux distributions don't allow you to run Executables or Libraries with this bit set.

The same issue also applies to the crashpad_handler, but since this apparently isn't a required import, TriOS launches without it:

Image

So it might probably be a good idea to ship Libraries without the exec Permission on the Stack. I checked all other Executables and Libraries for TriOS, and only libsentry and crashpad_handler have this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions