aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-11-09 11:50:56 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-11-09 11:50:56 +0900
commit45fead18c377abcf5138f26b4908389f34d2ba60 (patch)
treee14d3789808af1b138cff0f9c1f6055ad73c0339 /cmd
parent431aa32291996b59a5c02e293fa8d1351a7111e8 (diff)
cmd/fshim: set no_new_privs flag
Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/fsu/main.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/cmd/fsu/main.go b/cmd/fsu/main.go
index 76343e27..0ba5a134 100644
--- a/cmd/fsu/main.go
+++ b/cmd/fsu/main.go
@@ -15,6 +15,8 @@ const (
fsuConfFile = "/etc/fsurc"
envShim = "FORTIFY_SHIM"
envAID = "FORTIFY_APP_ID"
+
+ PR_SET_NO_NEW_PRIVS = 0x26
)
var Fmain = compPoison
@@ -86,6 +88,9 @@ func main() {
if err := syscall.Setresuid(uid, uid, uid); err != nil {
log.Fatalf("cannot set uid: %v", err)
}
+ if _, _, errno := syscall.AllThreadsSyscall(syscall.SYS_PRCTL, PR_SET_NO_NEW_PRIVS, 1, 0); errno != 0 {
+ log.Fatalf("cannot set no_new_privs flag: %s", errno.Error())
+ }
if err := syscall.Exec(fmain, []string{"fortify", "shim"}, []string{envShim + "=" + shimSetupPath}); err != nil {
log.Fatalf("cannot start shim: %v", err)
}