linux/net
Matthieu Baerts (NGI0) 53d55bea25 mptcp: fully established after ADD_ADDR echo on MPJ
commit d67c5649c1 upstream.

Before this patch, receiving an ADD_ADDR echo on the just connected
MP_JOIN subflow -- initiator side, after the MP_JOIN 3WHS -- was
resulting in an MP_RESET. That's because only ACKs with a DSS or
ADD_ADDRs without the echo bit were allowed.

Not allowing the ADD_ADDR echo after an MP_CAPABLE 3WHS makes sense, as
we are not supposed to send an ADD_ADDR before because it requires to be
in full established mode first. For the MP_JOIN 3WHS, that's different:
the ADD_ADDR can be sent on a previous subflow, and the ADD_ADDR echo
can be received on the recently created one. The other peer will already
be in fully established, so it is allowed to send that.

We can then relax the conditions here to accept the ADD_ADDR echo for
MPJ subflows.

Fixes: 67b12f792d ("mptcp: full fully established support after ADD_ADDR")
Cc: stable@vger.kernel.org
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20240731-upstream-net-20240731-mptcp-endp-subflow-signal-v1-1-c8a9b036493b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
[ Conflicts in options.c, because the context has changed in commit
  b3ea6b272d ("mptcp: consolidate initial ack seq generation"), which
  is not in this version. This commit is unrelated to this
  modification. ]
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-19 05:45:51 +02:00
..
6lowpan
9p net/9p: fix uninit-value in p9_client_rpc() 2024-06-16 13:39:58 +02:00
802 mrp: introduce active flags to prevent UAF when applicant uninit 2022-12-31 13:14:42 +01:00
8021q vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING 2024-02-23 08:54:27 +01:00
appletalk appletalk: Fix Use-After-Free in atalk_ioctl 2023-12-20 15:17:37 +01:00
atm atm: Fix Use-After-Free in do_vcc_ioctl 2023-12-20 15:17:35 +01:00
ax25 net: ax25: Fix deadlock caused by skb_recv_datagram in ax25_recvmsg 2022-06-22 14:22:01 +02:00
batman-adv batman-adv: Don't accept TT entries for out-of-spec VIDs 2024-07-05 09:14:49 +02:00
bluetooth Bluetooth: l2cap: always unlock channel in l2cap_conless_channel() 2024-08-19 05:45:36 +02:00
bpf bpf: Set run context for rawtp test_run callback 2024-07-05 09:14:06 +02:00
bpfilter
bridge net: bridge: mcast: wait for previous gc cycles when removing port 2024-08-19 05:45:35 +02:00
caif net: caif: Fix use-after-free in cfusbl_device_notify() 2023-03-17 08:48:54 +01:00
can net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new 2024-07-05 09:14:48 +02:00
ceph libceph: fix race between delayed_work() and ceph_monc_stop() 2024-07-18 13:07:42 +02:00
core net: linkwatch: use system_unbound_wq 2024-08-19 05:45:35 +02:00
dcb net: dcb: choose correct policy to parse DCB_ATTR_BCN 2023-08-11 15:13:53 +02:00
dccp Fix race for duplicate reqsk on identical SYN 2024-07-05 09:14:41 +02:00
dns_resolver keys, dns: Fix size check of V1 server-list header 2024-01-25 14:52:46 -08:00
dsa net: dsa: tag_sja1105: always prefer source port information from INCL_SRCPT 2024-06-16 13:39:54 +02:00
ethernet ethernet: Add helper for assigning packet type when dest address does not match device address 2024-05-02 16:24:49 +02:00
ethtool ethtool: netlink: do not return SQI value if link is down 2024-07-18 13:07:38 +02:00
hsr hsr: Handle failures in module init 2024-03-26 18:21:36 -04:00
ieee802154 net: drop nopreempt requirement on sock_prot_inuse_add() 2024-07-05 09:14:08 +02:00
ife net: sched: ife: fix potential use-after-free 2024-01-05 15:13:29 +01:00
ipv4 netfilter: iptables: Fix null-ptr-deref in iptable_nat_table_init(). 2024-08-19 05:45:32 +02:00
ipv6 ipv6: fix ndisc_is_useropt() handling for PIO 2024-08-19 05:45:32 +02:00
iucv net/iucv: fix use after free in iucv_sock_close() 2024-08-19 05:45:32 +02:00
kcm net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function 2024-03-26 18:21:23 -04:00
key net: af_key: fix sadb_x_filter validation 2023-08-26 14:23:32 +02:00
l2tp l2tp: fix lockdep splat 2024-08-19 05:45:36 +02:00
l3mdev l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu 2022-04-27 14:38:53 +02:00
lapb
llc llc: call sock_orphan() at release time 2024-02-23 08:54:54 +01:00
mac80211 wifi: mac80211: check basic rates validity 2024-08-19 05:45:50 +02:00
mac802154 net: mac802154: Fix racy device stats updates by DEV_STATS_INC() and DEV_STATS_ADD() 2024-07-27 10:46:13 +02:00
mctp mctp: perform route lookups under a RCU read-side lock 2023-10-25 11:58:59 +02:00
mpls net: mpls: fix stale pointer if allocation fails during device rename 2023-02-22 12:57:09 +01:00
mptcp mptcp: fully established after ADD_ADDR echo on MPJ 2024-08-19 05:45:51 +02:00
ncsi net/ncsi: Fix the multi thread manner of NCSI driver 2024-07-05 09:14:06 +02:00
netfilter netfilter: nf_tables: prefer nft_chain_validate 2024-08-19 05:45:50 +02:00
netlabel calipso: fix memory leak in netlbl_calipso_add_pass() 2024-01-25 14:52:33 -08:00
netlink net: drop nopreempt requirement on sock_prot_inuse_add() 2024-07-05 09:14:08 +02:00
netrom netrom: Fix a memory leak in nr_heartbeat_expiry() 2024-07-05 09:14:29 +02:00
nfc nfc: nci: Fix handling of zero-length payload packets in nci_rx_work() 2024-06-16 13:39:48 +02:00
nsh nsh: Restore skb->{protocol,data,mac_header} for outer header in nsh_gso_segment(). 2024-05-17 11:50:48 +02:00
openvswitch openvswitch: Set the skbuff pkt_type for proper pmtud support. 2024-06-16 13:39:47 +02:00
packet af_packet: Handle outgoing VLAN packets without hardware offloading 2024-08-19 05:45:11 +02:00
phonet phonet: fix rtm_phonet_notify() skb allocation 2024-05-17 11:50:58 +02:00
psample psample: Require 'CAP_NET_ADMIN' when joining "packets" group 2023-12-13 18:36:37 +01:00
qrtr net: qrtr: ns: Fix module refcnt 2024-06-16 13:39:33 +02:00
rds net/rds: fix possible cp null dereference 2024-04-10 16:19:37 +02:00
rfkill net: rfkill: gpio: set GPIO direction 2024-01-05 15:13:34 +01:00
rose net/rose: fix races in rose_kill_by_device() 2024-01-05 15:13:29 +01:00
rxrpc rxrpc: Fix response to PING RESPONSE ACKs to a dead call 2024-02-23 08:54:58 +01:00
sched sched: act_ct: take care of padding in struct zones_ht_key 2024-08-19 05:45:31 +02:00
sctp sctp: Fix null-ptr-deref in reuseport_add_sock(). 2024-08-19 05:45:35 +02:00
smc net/smc: set rmb's SG_MAX_SINGLE_ALLOC limitation only when CONFIG_ARCH_NO_SG_CHAIN is defined 2024-08-19 05:44:56 +02:00
strparser
sunrpc SUNRPC: Fix a race to wake a sync task 2024-08-19 05:45:39 +02:00
switchdev
tipc tipc: Return non-zero value from tipc_udp_addr2str() on error 2024-08-19 05:45:24 +02:00
tls tls: fix race between tx work scheduling and socket close 2024-08-19 05:45:49 +02:00
unix af_unix: Read with MSG_PEEK loops if the first unread byte is OOB 2024-07-05 09:14:19 +02:00
vmw_vsock virtio/vsock: fix logic which reduces credit update messages 2024-01-25 14:52:38 -08:00
wireless wifi: nl80211: don't give key data to userspace 2024-08-19 05:45:37 +02:00
x25 net/x25: fix incorrect parameter validation in the x25_getsockopt() function 2024-03-26 18:21:23 -04:00
xdp net: drop nopreempt requirement on sock_prot_inuse_add() 2024-07-05 09:14:08 +02:00
xfrm net: fix __dst_negative_advice() race 2024-06-16 13:39:59 +02:00
compat.c
devres.c
Kconfig Remove DECnet support from kernel 2023-06-21 15:59:15 +02:00
Makefile Remove DECnet support from kernel 2023-06-21 15:59:15 +02:00
socket.c net: Save and restore msg_namelen in sock_sendmsg 2024-01-15 18:51:16 +01:00
sysctl_net.c