diff options
| author | Ophestra Umiker <cat@ophivana.moe> | 2024-11-09 11:50:56 +0900 |
|---|---|---|
| committer | Ophestra Umiker <cat@ophivana.moe> | 2024-11-09 11:50:56 +0900 |
| commit | 45fead18c377abcf5138f26b4908389f34d2ba60 (patch) | |
| tree | e14d3789808af1b138cff0f9c1f6055ad73c0339 /cmd | |
| parent | 431aa32291996b59a5c02e293fa8d1351a7111e8 (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.go | 5 |
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) } |
