diff options
| author | bitflash-maintainer <noreply@bitflash.invalid> | 2026-09-02 05:16:33 +0000 |
|---|---|---|
| committer | bitflash-maintainer <noreply@bitflash.invalid> | 2026-09-02 06:47:24 +0000 |
| commit | 5ef59833756da6f47274cb990eb874fb0ed99019 (patch) | |
| tree | 450e0c22dee181f6d562c463e792ef0364250f08 /src/imgui/imgui_widgets.cpp | |
| parent | 18ffcb21393c9e54653844d62c5ef97c58bc61d4 (diff) | |
build: keep the stack non-executable, whoever links this
RandomX links jit_compiler_x86_static.S, a hand-written assembly stub with
no .note.GNU-stack marker. binutils reads a missing marker as a request for
an executable stack, and older linkers grant it for the whole binary: NX off,
process-wide, for a node that parses attacker-supplied blocks and messages.
The same source therefore produced different security properties depending on
where it was built. Ubuntu 26.04 gave GNU_STACK RW; Debian 12 -- the build
target for the deploy image, because it is the oldest glibc we ship to and the
last Debian that still packages the Berkeley DB C++ binding -- gave RWE. The
only announcement was a linker warning in the middle of an otherwise clean
build.
-z noexecstack settles it in the tree instead of in the toolchain. RandomX's
JIT maps its own W^X pages and never executes from the stack, so nothing that
works today stops working. Both link lines take it, GUI and headless.
Verify: readelf -lW bitflash-node | grep -A1 GNU_STACK # expect RW
Diffstat (limited to 'src/imgui/imgui_widgets.cpp')
0 files changed, 0 insertions, 0 deletions