Open asmi10 opened 4 years ago
I'm having this issue as well - a few notes:
newuidmap
has the setuid bit but allowPrivilegeEscalation: false
prevents that from happening. Even if filecaps were used the same issue would happenunshare -r
(which writes to /proc/pid/uid_map
) without needing CAP_SETUID
.newuidmap
calls capset here
but again its not totally clear to me why it needs to do so?It's not clear to me why newuidmap needs setuid? I can do unshare -r (which writes to /proc/pid/uid_map) without needing CAP_SETUID.
For writing multiple entries to uid_map, newuidmap needs setuid
Is there any way to eliminate the use of newuidmap
/newgidmap
?
I need to be able to run buildkit in a context with allowPrivilegeEscalation: false
.
I came across https://unix.stackexchange.com/questions/759533/what-causes-newuidmap-to-be-dissallowed-in-new-user-namespace - perhaps it provides a way forward?
Is there any way to eliminate the use of
newuidmap
/newgidmap
?I need to be able to run buildkit in a context with
allowPrivilegeEscalation: false
.
Conceptually yes, by using UML as in https://github.com/weber-software/diuid
Or just use seccomp_unotify to hook UID-relevant syscalls (POC https://github.com/rootless-containers/subuidless)
Those projects are unmaintained - is there a maintained, actively used solution available?
Hello!
I tried to deploy buildkitd in kubernetes cluster having below PSP applied, but it failed with error: [rootlesskit:parent] error: failed to setup UID/GID map: newuidmap 10 [0 1000 1 1 100000 65536] failed: newuidmap: Could not set caps : exit status 1 If I allow privilege escalation in PSP then it works fine.
spec: allowPrivilegeEscalation: false allowedCapabilities: