[PATCH v2 0/4] address tls_alert_recv usage by NFS and NvME
Olga Kornievskaia
okorniev at redhat.com
Thu Jul 31 11:00:54 PDT 2025
v2: patch#3 changed to remove unused recv_cbuf member of nvmet_tcp_cmd
This is a multi-component patch series: NFS client, NFS server,
NvME (target), net.
tls_alert_recv() has been originally written to retrieve TLS alert
payload out of the msg iterator's kvec buffer. Yet, the callers of
tls_alert_recv() have not been careful enough to make sure that
msg has always been initialized with a kvec-backed iterator (ie.,
some times bvec was used). Furthermore, callers didn't account
for the fact that the msg iterator's kvec is advanced by sock_recvmsg
upon filling up the provided space by the copy. All that lead to
the ability to construct a malicious payload that would trigger
badness in tls_alert_recv().
This patch series attempts to address it in a couple of steps.
First, there are patches for each of the current consumers (NFS
server, NFS client, NvME target) of tls_alert_recv to address
an immediate problem which I think should be backported.
Note, patch#3 is NvME patch that had no testing. Compile only patch.
Second, the last patch builds on top of the fixes but changes
tls_alert_recv to force the callers to provide the kvec directly
in hopes that any future users of tls_alert_recv would be more
congnizant of providing location to the actual TLS alert payload.
Again note that nvme changes in patch#4 are compile only.
Olga Kornievskaia (4):
sunrpc: fix handling of server side tls alerts
sunrpc: fix client side handling of tls alerts
nvmet-tcp: fix handling of tls alerts
net/handshake: change tls_alert_recv to receive a kvec
Olga Kornievskaia (4):
sunrpc: fix handling of server side tls alerts
sunrpc: fix client side handling of tls alerts
nvmet-tcp: fix handling of tls alerts
net/handshake: change tls_alert_recv to receive a kvec
drivers/nvme/target/tcp.c | 38 ++++++++++++++------------
include/net/handshake.h | 2 +-
net/handshake/alert.c | 6 ++---
net/sunrpc/svcsock.c | 56 ++++++++++++++++++++++++++++-----------
net/sunrpc/xprtsock.c | 51 ++++++++++++++++++++++++-----------
5 files changed, 101 insertions(+), 52 deletions(-)
--
2.47.1
More information about the Linux-nvme
mailing list