kernel_optimize_test/net
Linus Lüssing ebe9c978d9 batman-adv: allow netlink usage in unprivileged containers
[ Upstream commit 9057d6c23e7388ee9d037fccc9a7bc8557ce277b ]

Currently, creating a batman-adv interface in an unprivileged LXD
container and attaching secondary interfaces to it with "ip" or "batctl"
works fine. However all batctl debug and configuration commands
fail:

  root@container:~# batctl originators
  Error received: Operation not permitted
  root@container:~# batctl orig_interval
  1000
  root@container:~# batctl orig_interval 2000
  root@container:~# batctl orig_interval
  1000

To fix this change the generic netlink permissions from GENL_ADMIN_PERM
to GENL_UNS_ADMIN_PERM. This way a batman-adv interface is fully
maintainable as root from within a user namespace, from an unprivileged
container.

All except one batman-adv netlink setting are per interface and do not
leak information or change settings from the host system and are
therefore save to retrieve or modify as root from within an unprivileged
container.

"batctl routing_algo" / BATADV_CMD_GET_ROUTING_ALGOS is the only
exception: It provides the batman-adv kernel module wide default routing
algorithm. However it is read-only from netlink and an unprivileged
container is still not allowed to modify
/sys/module/batman_adv/parameters/routing_algo. Instead it is advised to
use the newly introduced "batctl if create routing_algo RA_NAME" /
IFLA_BATADV_ALGO_NAME to set the routing algorithm on interface
creation, which already works fine in an unprivileged container.

Cc: Tycho Andersen <tycho@tycho.pizza>
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 10:54:11 +01:00
..
6lowpan
9p
802
8021q
appletalk
atm
ax25 ax25: uninitialized variable in ax25_setsockopt() 2022-01-27 10:54:03 +01:00
batman-adv batman-adv: allow netlink usage in unprivileged containers 2022-01-27 10:54:11 +01:00
bluetooth Bluetooth: Fix debugfs entry leak in hci_register_dev() 2022-01-27 10:54:10 +01:00
bpf
bpfilter
bridge netfilter: bridge: add support for pppoe filtering 2022-01-27 10:53:52 +01:00
caif
can can: isotp: convert struct tpcon::{idx,len} to unsigned int 2022-01-16 09:14:23 +01:00
ceph
core bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt(). 2022-01-27 10:54:01 +01:00
dcb
dccp
decnet
dns_resolver
dsa
ethernet
ethtool ethtool: do not perform operations on net devices being unregistered 2021-12-17 10:14:41 +01:00
hsr
ieee802154
ife
ipv4 netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check() 2022-01-27 10:54:00 +01:00
ipv6 ipv6: raw: check passed optlen before reading 2022-01-11 15:25:02 +01:00
iucv
kcm
key
l2tp
l3mdev
lapb
llc
mac80211 mac80211: initialize variable have_higher_than_11mbit 2022-01-11 15:24:59 +01:00
mac802154
mpls
mptcp mptcp: clear 'kern' flag from fallback sockets 2021-12-22 09:30:54 +01:00
ncsi net/ncsi: check for error return from call to nla_put_u32 2022-01-05 12:40:32 +01:00
netfilter netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone 2022-01-27 10:54:01 +01:00
netlabel
netlink net: netlink: af_netlink: Prevent empty skb by adding a check on len. 2021-12-17 10:14:40 +01:00
netrom netrom: fix api breakage in nr_setsockopt() 2022-01-27 10:54:03 +01:00
nfc nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind() 2022-01-27 10:53:41 +01:00
nsh
openvswitch
packet net/packet: rx_owner_map depends on pg_vec 2021-12-22 09:30:55 +01:00
phonet phonet: refcount leak in pep_sock_accep 2022-01-11 15:25:01 +01:00
psample
qrtr
rds rds: memory leak in __rds_conn_create() 2021-12-22 09:30:54 +01:00
rfkill
rose
rxrpc
sched sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc 2022-01-11 15:25:00 +01:00
sctp sctp: use call_rcu to free endpoint 2022-01-05 12:40:30 +01:00
smc net/smc: fix kernel panic caused by race of smc_sock 2022-01-05 12:40:31 +01:00
strparser
sunrpc
switchdev
tipc
tls
unix
vmw_vsock virtio/vsock: fix the transport to work with VMADDR_CID_ANY 2021-12-22 09:30:52 +01:00
wimax
wireless
x25
xdp Revert "xsk: Do not sleep in poll() when need_wakeup set" 2021-12-22 09:30:59 +01:00
xfrm xfrm: state and policy should fail if XFRMA_IF_ID 0 2022-01-27 10:53:57 +01:00
compat.c
devres.c
Kconfig
Makefile
socket.c
sysctl_net.c