android_kernel_motorola_sm6375/net
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Peiyong Wang eab1bfc6b7 BACKPORT: net: core: enable SO_BINDTODEVICE for non-root users
Currently, SO_BINDTODEVICE requires CAP_NET_RAW. This change allows a
non-root user to bind a socket to an interface if it is not already
bound. This is useful to allow an application to bind itself to a
specific VRF for outgoing or incoming connections. Currently, an
application wanting to manage connections through several VRF need to
be privileged.

Previously, IP_UNICAST_IF and IPV6_UNICAST_IF were added for
Wine (76e21053b5 and c4062dfc42) specifically for use by
non-root processes. However, they are restricted to sendmsg() and not
usable with TCP. Allowing SO_BINDTODEVICE would allow TCP clients to
get the same privilege. As for TCP servers, outside the VRF use case,
SO_BINDTODEVICE would only further restrict connections a server could
accept.

When an application is restricted to a VRF (with `ip vrf exec`), the
socket is bound to an interface at creation and therefore, a
non-privileged call to SO_BINDTODEVICE to escape the VRF fails.

When an application bound a socket to SO_BINDTODEVICE and transmit it
to a non-privileged process through a Unix socket, a tentative to
change the bound device also fails.

Before:

    >>> import socket
    >>> s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    >>> s.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE, b"dummy0")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    PermissionError: [Errno 1] Operation not permitted

After:

    >>> import socket
    >>> s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    >>> s.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE, b"dummy0")
    >>> s.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE, b"dummy0")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    PermissionError: [Errno 1] Operation not permitted

Bug: 323792489
Signed-off-by: Vincent Bernat <vincent@bernat.ch>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit c427bfec18f2190b8f4718785ee8ed2db4f84ee6)
Change-Id: Ie3f4c536b78da12dd961dc681c6dfb0cdf1a06b7
Signed-off-by: Peiyong Wang <wangpeiyong@xiaomi.corp-partner.google.com>
2026-05-07 10:18:47 -04:00
..
6lowpan
9p net/9p: fix double req put in p9_fd_cancelled 2025-10-29 13:59:54 +01:00
802
8021q net: vlan: sync VLAN features with lower device 2025-12-03 12:45:15 +01:00
appletalk net: appletalk: Fix use-after-free in AARP proxy probe 2025-08-28 16:21:17 +02:00
atm net: atm: fix memory leak in atm_register_sysfs when device_register fail 2025-09-09 18:43:58 +02:00
ax25 BACKPORT: net: Make sock protocol value checks more specific 2025-12-23 13:35:52 -08:00
batman-adv batman-adv: fix OOB read/write in network-coding decode 2025-09-09 18:43:59 +02:00
bluetooth This is the 5.4.302 stable release 2025-12-11 09:41:30 +00:00
bpf UPSTREAM: bpf: Move skb->len == 0 checks into __bpf_redirect 2026-01-14 18:13:04 -08:00
bpfilter UPSTREAM: net/bpfilter: Initialize pos in __bpfilter_process_sockopt 2026-02-01 20:44:55 -08:00
bridge Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina 2026-04-30 20:46:30 +03:00
caif This is the 5.4.297 stable release 2025-09-02 10:52:40 +00:00
can This is the 5.4.300 stable release 2025-10-02 13:53:47 +00:00
ceph
core BACKPORT: net: core: enable SO_BINDTODEVICE for non-root users 2026-05-07 10:18:47 -04:00
dcb
dccp net: fix data-races around sk->sk_forward_alloc 2025-02-01 18:18:52 +01:00
decnet
dns_resolver
dsa net: dsa: microchip: linearize skb for tail-tagging switches 2025-09-09 18:44:00 +02:00
embms_kernel
ethernet
hsr
ieee802154
ife
ipv4 Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina 2026-04-30 20:46:30 +03:00
ipv6 BACKPORT: net: release reference to inet6_dev pointer 2026-05-07 10:16:30 -04:00
iucv
kcm
key
l2tp
l3mdev
lapb
llc llc: fix data loss when reading from a socket in llc_ui_recvmsg() 2025-06-04 14:32:35 +02:00
mac80211 Merge android11-5.4.302(91d385eb) into msm-5.4 2026-01-30 11:41:11 +05:30
mac802154 This is the 5.4.290 stable release 2025-02-05 17:00:16 +00:00
mpls BACKPORT: sysctl: pass kernel pointers to ->proc_handler 2025-12-23 13:36:15 -08:00
ncsi net: ncsi: Fix buffer overflow in fetching version id 2025-08-28 16:21:27 +02:00
netfilter Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina 2026-04-30 20:46:30 +03:00
netlabel calipso: unlock rcu before returning -EAFNOSUPPORT 2025-06-27 11:02:50 +01:00
netlink UPSTREAM: bpf: Refactor bpf_iter_reg to have separate seq_info member 2026-01-14 18:12:07 -08:00
netrom
neuron
nfc BACKPORT: net: Fix Kconfig indentation, continued 2026-02-01 20:39:45 -08:00
nsh
openvswitch net: openvswitch: remove never-working support for setting nsh fields 2025-12-03 12:45:20 +01:00
packet BACKPORT: net: switch copy_bpf_fprog_from_user to sockptr_t 2026-01-14 18:12:35 -08:00
phonet BACKPORT: sysctl: pass kernel pointers to ->proc_handler 2025-12-23 13:36:15 -08:00
psample
qrtr Merge android11-5.4.289(4c8fb32) into msm-5.4 2025-03-26 11:56:22 +05:30
rds BACKPORT: tcp: add tcp_sock_set_keepidle 2026-01-14 17:50:47 -08:00
rfkill net: rfkill: gpio: Fix crash due to dereferencering uninitialized pointer 2025-10-02 13:34:32 +02:00
rose rose: fix dangling neighbour pointers in rose_rt_device_down() 2025-07-17 18:25:00 +02:00
rxrpc rxrpc: Fix oops due to non-existence of prealloc backlog struct 2025-07-17 18:25:02 +02:00
sched Merge android11-5.4.302(91d385eb) into msm-5.4 2026-01-30 11:41:11 +05:30
sctp Revert "net, sctp, filter: remap copy_from_user failure error" 2026-02-01 20:44:59 -08:00
smc
strparser strparser: Fix signed/unsigned mismatch bug 2025-12-03 12:45:19 +01:00
sunrpc BACKPORT: tcp: add tcp_sock_set_keepidle 2026-01-14 17:50:47 -08:00
switchdev
tipc This is the 5.4.302 stable release 2025-12-11 09:41:30 +00:00
tls UPSTREAM: net, sk_msg: Annotate lockless access to sk_prot on clone 2025-12-23 13:36:03 -08:00
unix
vmw_vsock This is the 5.4.302 stable release 2025-12-11 09:41:30 +00:00
wimax
wireless Revert "wifi: cfg80211: Increase akm_suites array size in" 2026-05-05 20:02:19 +03:00
x25
xdp UPSTREAM: bpf: Allow for map-in-map with dynamic inner array map entries 2026-01-14 18:12:44 -08:00
xfrm BACKPORT: net: Fix Kconfig indentation, continued 2026-02-01 20:39:45 -08:00
compat.c BACKPORT: net: simplify cBPF setsockopt compat handling 2026-01-14 18:12:33 -08:00
Kconfig BACKPORT: bpf: Clean up sockmap related Kconfigs 2026-02-01 20:44:37 -08:00
Makefile
OWNERS
socket.c
sysctl_net.c
TEST_MAPPING