SYD-MDWE(1)
π
SYD-MDWE(1) β the syd-mdwe girlies' guide β¨
okay so real talk, this is a page from the General Commands Manual, and the star of the show is syd-mdwe β she's giving security-tool main character energy and honestly? obsessed. π«Ά
πΈ NAME πΈ
syd-mdwe β run a program under Memory-Deny-Write-Execute protections π
β¨ SYNOPSIS β¨
syd-mdwe [-hms] {command [args...]}
π¦ DESCRIPTION π¦
so syd-mdwe is this utility that runs a program under Memory-Deny-Write-Execute (MDWE) protections. no cap. π₯
the protections can be applied using prctl(2) and seccomp(2), and bestie, they're literally identical to what Syd applies by default. iykyk. π
π OPTIONS π
-hβ display help. she's helpful, she's iconic. π-mβ enable MDWE protections usingprctl(2)PR_SET_MDWE(default: both). π-sβ enable MDWE protections usingseccomp(2)(default: both). β
π EXAMPLES π
okay so the flex here is running pax-test once standalone and once under syd-mdwe(1) on a 6.8 kernel, and the differences are literally the whole point:
the ones that get Killed either way (standalone: Killed, mdwe: Killed) β no change, she was already slaying:
- Executable anonymous mapping
- Executable bss
- Executable data
- Executable heap
- Executable stack
- Executable shared library bss
- Executable shared library data
and the ones where syd-mdwe really ate (standalone: Vulnerable, mdwe: Killed) β this is the glow-up right here, not me crying π:
- Executable anonymous mapping (mprotect)
- Executable bss (mprotect)
- Executable data (mprotect)
- Executable heap (mprotect)
- Executable stack (mprotect)
- Executable shared library bss (mprotect)
- Executable shared library data (mprotect):
- Writable text segments
fr fr theVulnerableβKilledpipeline is the most satisfying glow-up in this whole page πβ¨
the test was performed with paxtest-0.9.15, and here's the receipts verbatim π§Ύ:
PaXtest - Copyright(c) 2003-2016 by Peter Busser <peter@adamantix.org> and Brad Spengler <spender@grsecurity.net>
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 a clean exit,
syd-mdweexits with the same code as the child process. teamwork, bestie π«Ά - on unclean termination, the exit code is set to
128plus the signal number. dramatic but valid π - if executing the child process fails,
syd-mdweexits with theerrno(3)number. π
π CAVEATS π
heads up bestie, this is the serious part, listen up π
by default, the prctl(2) error setting PR_SET_MDWE(2const) is not fatal. use the -m option to make this error fatal β like, actually fatal, not just vibe-fatal. π
also, this utility does not work on MIPS architectures, where Linux requires an executable stack. so if you're on MIPS, this is not the tool for you, and that's on periodt. π
π 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. π
and that's the page, bestie π β brought to you by the General Commands Manual energies, dated 2026-09-01, filed under SYD-MDWE(1). go protect some memory, ilysm πβ¨
π¦ where this page comes from
- arch rolling: syd 3.59.0-1 Β· GPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms