From 761fb91a8ae62a13b5b3068469243101ea7c0b41 Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Mon, 12 Feb 2024 03:28:56 +0100 Subject: [PATCH] Disable prctl dumpable protection under delve debugging --- agent/processsecurity/isdelve/isdelve.go | 6 ++++++ agent/processsecurity/isdelve/nodelve.go | 6 ++++++ agent/processsecurity/unix.go | 7 ++++++- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 agent/processsecurity/isdelve/isdelve.go create mode 100644 agent/processsecurity/isdelve/nodelve.go diff --git a/agent/processsecurity/isdelve/isdelve.go b/agent/processsecurity/isdelve/isdelve.go new file mode 100644 index 0000000..32e3f21 --- /dev/null +++ b/agent/processsecurity/isdelve/isdelve.go @@ -0,0 +1,6 @@ +//go:build delve +// +build delve + +package isdelve + +const Enabled = true diff --git a/agent/processsecurity/isdelve/nodelve.go b/agent/processsecurity/isdelve/nodelve.go new file mode 100644 index 0000000..9980de0 --- /dev/null +++ b/agent/processsecurity/isdelve/nodelve.go @@ -0,0 +1,6 @@ +//go:build !delve +// +build !delve + +package isdelve + +const Enabled = false diff --git a/agent/processsecurity/unix.go b/agent/processsecurity/unix.go index ca71f7b..b1e9370 100644 --- a/agent/processsecurity/unix.go +++ b/agent/processsecurity/unix.go @@ -6,13 +6,18 @@ import ( "time" "github.com/godbus/dbus/v5" + "github.com/quexten/goldwarden/agent/processsecurity/isdelve" "golang.org/x/sys/unix" ) const IDLE_TIME = 60 * 15 func DisableDumpable() error { - return unix.Prctl(unix.PR_SET_DUMPABLE, 0, 0, 0, 0) + if isdelve.Enabled { + return nil + } else { + return unix.Prctl(unix.PR_SET_DUMPABLE, 0, 0, 0, 0) + } } func MonitorLocks(onlock func()) error {