Message ID | 20220921011946.250228-3-michael.weiss@aisec.fraunhofer.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: openvswitch: metering and conntrack in userns | expand |
On Wed, 21 Sep 2022 03:19:46 +0200 Michael Weiß wrote: > Similar to the previous commit, the Netlink interface of the OVS > conntrack module was restricted to global CAP_NET_ADMIN by using > GENL_ADMIN_PERM. This is changed to GENL_UNS_ADMIN_PERM to support > unprivileged containers in non-initial user namespace. Should we bump ct_limit = kmalloc(sizeof(*ct_limit), GFP_KERNEL); to also being accounted? Otherwise LGTM, please repost with [PATCH net-next v3] in the subject. net is for fixes only, and we're quite late in the -rc process. Please try to CC the original authors as well, for Joe the address will be Joe Stringer <joe@cilium.io>. > diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c > index 4e70df91d0f2..9142ba322991 100644 > --- a/net/openvswitch/conntrack.c > +++ b/net/openvswitch/conntrack.c > @@ -2252,14 +2252,16 @@ static int ovs_ct_limit_cmd_get(struct sk_buff *skb, struct genl_info *info) > static const struct genl_small_ops ct_limit_genl_ops[] = { > { .cmd = OVS_CT_LIMIT_CMD_SET, > .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, > - .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN > - * privilege. */ > + .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN > + * privilege. > + */ > .doit = ovs_ct_limit_cmd_set, > }, > { .cmd = OVS_CT_LIMIT_CMD_DEL, > .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, > - .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN > - * privilege. */ > + .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN > + * privilege. > + */ > .doit = ovs_ct_limit_cmd_del, > }, > { .cmd = OVS_CT_LIMIT_CMD_GET,
diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c index 4e70df91d0f2..9142ba322991 100644 --- a/net/openvswitch/conntrack.c +++ b/net/openvswitch/conntrack.c @@ -2252,14 +2252,16 @@ static int ovs_ct_limit_cmd_get(struct sk_buff *skb, struct genl_info *info) static const struct genl_small_ops ct_limit_genl_ops[] = { { .cmd = OVS_CT_LIMIT_CMD_SET, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN - * privilege. */ + .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN + * privilege. + */ .doit = ovs_ct_limit_cmd_set, }, { .cmd = OVS_CT_LIMIT_CMD_DEL, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN - * privilege. */ + .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN + * privilege. + */ .doit = ovs_ct_limit_cmd_del, }, { .cmd = OVS_CT_LIMIT_CMD_GET,
Similar to the previous commit, the Netlink interface of the OVS conntrack module was restricted to global CAP_NET_ADMIN by using GENL_ADMIN_PERM. This is changed to GENL_UNS_ADMIN_PERM to support unprivileged containers in non-initial user namespace. Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de> --- net/openvswitch/conntrack.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)