Reference

syd-mdwe(1)

Run a program under Memory-Deny-Write-Execute protections

NAME

syd-mdwe - Run a program under Memory-Deny-Write-Execute protections

SYNOPSIS

syd-mdwe [-hms] {command [args...]}

DESCRIPTION

syd-mdwe utility runs a program under Memory-Deny-Write-Execute (MDWE) protections. The protections can be applied using prctl(2) and seccomp(2), These protections are identical to what Syd applies by default.

OPTIONS

-hDisplay help.
-mEnable MDWE protections using prctl(2) PR_SET_MDWE (default: both).
-sEnable MDWE protections using seccomp(2) (default: both).

EXAMPLES

Running pax-test once standalone and once under syd-mdwe(1) on a 6.8 kernel we get the following differences:

PaX Testcasestandalonemdwe
Executable anonymous mappingKilledKilled
Executable bssKilledKilled
Executable dataKilledKilled
Executable heapKilledKilled
Executable stackKilledKilled
Executable shared library bssKilledKilled
Executable shared library dataKilledKilled
Executable anonymous mapping (mprotect)VulnerableKilled
Executable bss (mprotect)VulnerableKilled
Executable data (mprotect)VulnerableKilled
Executable heap (mprotect)VulnerableKilled
Executable stack (mprotect)VulnerableKilled
Executable shared library bss (mprotect)VulnerableKilled
Executable shared library data (mprotect):VulnerableKilled
Writable text segmentsVulnerableKilled

The test was performed with paxtest-0.9.15:

PaXtest - Copyright(c) 2003-2016 by Peter Busser <[email protected]> and Brad Spengler <[email protected]>
Released under the GNU Public Licence version 2 or later
Mode: 1
Blackhat
Kernel: 
Linux syd 6.8.0-syd-13213-g70293240c5ce #9 SMP PREEMPT_DYNAMIC Mon Mar 25 04:40:47 CET 2024 x86_64 GNU/Linux

EXIT STATUS

On clean exit, syd-mdwe exits with the same code as the child process. On unclean termination, exit code is set to 128 plus signal number. In case executing the child process fails syd-mdwe exits with the errno(3) number.

CAVEATS

By default, prctl(2) error setting PR_SET_MDWE(2const) is not fatal. Use the -m option to make this error fatal. This utility does not work on MIPS architectures where Linux requires executable stack.

SEE ALSO

syd(1), syd(2), syd(5), syd-lock(1), syd-ofd(1), syd-pds(1), syd-ring(1), syd-sec(1), syd-tsc(1), seccomp(2), prctl(2), PR_SET_MDWE(2const)

syd homepage: https://sydbox.exherbo.org/

AUTHORS

Maintained by Ali Polatel. Up-to-date sources can be found at https://gitlab.exherbo.org/sydbox/sydbox.git and on Radicle at rad:z38HCnbmcDegA2BMxuPaPRPMdp6wF. Bugs/patches can be submitted to https://gitlab.exherbo.org/groups/sydbox/-/issues. Discuss in #sydbox on Libera Chat or in #sydbox:mailstation.de on Matrix.