bpf, ktls: Fix data corruption when using bpf_msg_pop_data() in ktls
authorJiayuan Chen <jiayuan.chen@linux.dev>
Mon, 9 Jun 2025 02:08:52 +0000 (10:08 +0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 11 Jun 2025 14:59:42 +0000 (16:59 +0200)
commit178f6a5c8cb3b6be1602de0964cd440243f493c9
treeabc4e6ad002a4fffae846293f775955067dbf791
parent76be5fae32febb1fdb848ba09f78c4b2c76cb337
bpf, ktls: Fix data corruption when using bpf_msg_pop_data() in ktls

When sending plaintext data, we initially calculated the corresponding
ciphertext length. However, if we later reduced the plaintext data length
via socket policy, we failed to recalculate the ciphertext length.

This results in transmitting buffers containing uninitialized data during
ciphertext transmission.

This causes uninitialized bytes to be appended after a complete
"Application Data" packet, leading to errors on the receiving end when
parsing TLS record.

Fixes: d3b18ad31f93 ("tls: add bpf support to sk_msg handling")
Reported-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/bpf/20250609020910.397930-2-jiayuan.chen@linux.dev
net/tls/tls_sw.c