nspawn: Drop CAP_NET_BIND_SERVICE if in userns with identity mapping (#38723)

Even if there's no uid shift, we still won't be able to bind to
privileged ports in the host network namespace, so drop the capability
regardless of whether we have a uid shift or not.
This commit is contained in:
Daan De Meyer
2025-09-05 09:08:44 +02:00
committed by GitHub
4 changed files with 22 additions and 2 deletions
+1 -1
View File
@@ -5950,7 +5950,7 @@ static int run(int argc, char *argv[]) {
/* If we're not unsharing the network namespace and are unsharing the user namespace, we won't have
* permissions to bind ports in the container, so let's drop the CAP_NET_BIND_SERVICE capability to
* indicate that. */
if (!arg_private_network && arg_userns_mode != USER_NAMESPACE_NO && arg_uid_shift > 0)
if (!arg_private_network && arg_userns_mode != USER_NAMESPACE_NO)
arg_caps_retain &= ~(UINT64_C(1) << CAP_NET_BIND_SERVICE);
r = verify_arguments();