linux-stable/net
Sabrina Dubroca 08562ca971 tls: fix peeking with sync+async decryption
[ Upstream commit 6caaf10442 ]

If we peek from 2 records with a currently empty rx_list, and the
first record is decrypted synchronously but the second record is
decrypted async, the following happens:
  1. decrypt record 1 (sync)
  2. copy from record 1 to the userspace's msg
  3. queue the decrypted record to rx_list for future read(!PEEK)
  4. decrypt record 2 (async)
  5. queue record 2 to rx_list
  6. call process_rx_list to copy data from the 2nd record

We currently pass copied=0 as skip offset to process_rx_list, so we
end up copying once again from the first record. We should skip over
the data we've already copied.

Seen with selftest tls.12_aes_gcm.recv_peek_large_buf_mult_recs

Fixes: 692d7b5d1f ("tls: Fix recvmsg() to be able to peek across multiple records")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://lore.kernel.org/r/1b132d2b2b99296bfde54e8a67672d90d6d16e71.1709132643.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-06 14:45:09 +00:00
..
6lowpan
9p net: 9p: avoid freeing uninit memory in p9pdu_vreadf 2024-01-01 12:39:04 +00:00
802
8021q vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING 2024-01-31 16:17:04 -08:00
appletalk appletalk: Fix Use-After-Free in atalk_ioctl 2023-12-20 17:00:19 +01:00
atm atm: Fix Use-After-Free in do_vcc_ioctl 2023-12-20 17:00:17 +01:00
ax25
batman-adv net: vlan: introduce skb_vlan_eth_hdr() 2023-12-20 17:00:16 +01:00
bluetooth Bluetooth: Enforce validation on max value of connection interval 2024-03-06 14:45:07 +00:00
bpf Revert "bpf, test_run: fix &xdp_frame misplacement for LIVE_FRAMES" 2023-03-17 08:50:32 +01:00
bpfilter
bridge netfilter: bridge: confirm multicast packets before passing them up the stack 2024-03-06 14:45:08 +00:00
caif net: caif: Fix use-after-free in cfusbl_device_notify() 2023-03-17 08:50:24 +01:00
can can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER) 2024-02-23 09:12:47 +01:00
ceph libceph: use kernel_connect() 2023-10-19 23:08:56 +02:00
core rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back 2024-03-06 14:45:08 +00:00
dcb net: dcb: choose correct policy to parse DCB_ATTR_BCN 2023-08-11 12:08:17 +02:00
dccp dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses. 2023-11-20 11:52:16 +01:00
devlink devlink: remove reload failed checks in params get/set callbacks 2023-09-23 11:11:01 +02:00
dns_resolver keys, dns: Fix size check of V1 server-list header 2024-01-25 15:27:38 -08:00
dsa net: dsa: sja1105: always enable the send_meta options 2023-07-19 16:22:06 +02:00
ethernet
ethtool ethtool: netlink: Add missing ethnl_ops_begin/complete 2024-01-25 15:27:51 -08:00
hsr net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames 2024-03-06 14:45:08 +00:00
ieee802154
ife net: sched: ife: fix potential use-after-free 2024-01-01 12:38:56 +00:00
ipv4 netfilter: let reset rules clean out conntrack entries 2024-03-06 14:45:08 +00:00
ipv6 netfilter: let reset rules clean out conntrack entries 2024-03-06 14:45:08 +00:00
iucv net/iucv: Fix size of interrupt data 2023-03-22 13:33:50 +01:00
kcm kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg(). 2023-09-19 12:28:10 +02:00
key net: af_key: fix sadb_x_filter validation 2023-08-23 17:52:32 +02:00
l2tp l2tp: pass correct message length to ip6_append_data 2024-03-01 13:26:33 +01:00
l3mdev
lapb
llc llc: call sock_orphan() at release time 2024-02-05 20:13:01 +00:00
mac80211 wifi: mac80211: adding missing drv_mgd_complete_tx() call 2024-03-01 13:26:29 +01:00
mac802154
mctp net: mctp: take ownership of skb in mctp_local_output 2024-03-06 14:45:06 +00:00
mpls net: mpls: fix stale pointer if allocation fails during device rename 2023-02-22 12:59:53 +01:00
mptcp mptcp: add needs_id for netlink appending addr 2024-03-01 13:26:39 +01:00
ncsi net/ncsi: Fix netlink major/minor version numbers 2024-01-25 15:27:24 -08:00
netfilter netfilter: bridge: confirm multicast packets before passing them up the stack 2024-03-06 14:45:08 +00:00
netlabel calipso: fix memory leak in netlbl_calipso_add_pass() 2024-01-25 15:27:20 -08:00
netlink netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter 2024-03-06 14:45:06 +00:00
netrom netrom: Deny concurrent connect(). 2023-09-13 09:42:35 +02:00
nfc nfc: nci: free rx_data_reassembly skb on NCI device cleanup 2024-02-23 09:12:37 +01:00
nsh net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment() 2023-05-24 17:32:45 +01:00
openvswitch net: openvswitch: limit the number of recursions from action sets 2024-02-23 09:12:30 +01:00
packet net: dev: Convert sa_data to flexible array in struct sockaddr 2024-03-01 13:26:36 +01:00
phonet phonet/pep: fix racy skb_queue_empty() use 2024-03-01 13:26:38 +01:00
psample psample: Require 'CAP_NET_ADMIN' when joining "packets" group 2023-12-13 18:39:11 +01:00
qrtr net: qrtr: ns: Return 0 if server port is not present 2024-01-20 11:50:09 +01:00
rds net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv 2024-01-31 16:17:04 -08:00
rfkill net: rfkill: gpio: set GPIO direction 2024-01-01 12:39:04 +00:00
rose net/rose: fix races in rose_kill_by_device() 2024-01-01 12:38:57 +00:00
rxrpc rxrpc: Fix response to PING RESPONSE ACKs to a dead call 2024-02-16 19:06:27 +01:00
sched net/sched: Retire dsmark qdisc 2024-03-01 13:26:24 +01:00
sctp sctp: fix busy polling 2024-01-25 15:27:30 -08:00
smc net/smc: disable SEID on non-s390 archs where virtual ISM may be used 2024-02-05 20:12:54 +00:00
strparser
sunrpc SUNRPC: Fix a suspicious RCU usage warning 2024-02-05 20:12:49 +00:00
switchdev net: bridge: switchdev: Skip MDB replays of deferred events on offload 2024-03-01 13:26:35 +01:00
tipc tipc: Check the bearer type before calling tipc_udp_nl_bearer_add() 2024-02-16 19:06:27 +01:00
tls tls: fix peeking with sync+async decryption 2024-03-06 14:45:09 +00:00
unix af_unix: Fix task hung while purging oob_skb in GC. 2024-03-06 14:45:04 +00:00
vmw_vsock virtio/vsock: fix logic which reduces credit update messages 2024-01-25 15:27:28 -08:00
wireless wifi: cfg80211: fix missing interfaces when dumping 2024-03-01 13:26:25 +01:00
x25 net/x25: Fix to not accept on connected socket 2023-02-09 11:28:13 +01:00
xdp xsk: Skip polling event check for unbound socket 2023-12-13 18:39:08 +01:00
xfrm xfrm: Silence warnings triggerable by bad packets 2024-02-23 09:12:47 +01:00
Kconfig
Kconfig.debug
Makefile devlink: move code to a dedicated directory 2023-08-30 16:11:00 +02:00
compat.c use less confusing names for iov_iter direction initializers 2023-02-09 11:28:04 +01:00
devres.c
socket.c splice, net: Add a splice_eof op to file-ops and socket-ops 2024-01-10 17:10:27 +01:00
sysctl_net.c