Re: [PATCH net v2 0/5] Make TCP-MD5-diag slightly less broken
From: Jakub Kicinski
Date: Wed Dec 04 2024 - 20:14:03 EST
On Wed, 13 Nov 2024 18:46:39 +0000 Dmitry Safonov via B4 Relay wrote:
> 2. Inet-diag allocates netlink message for sockets in
> inet_diag_dump_one_icsk(), which uses a TCP-diag callback
> .idiag_get_aux_size(), that pre-calculates the needed space for
> TCP-diag related information. But as neither socket lock nor
> rcu_readlock() are held between allocation and the actual TCP
> info filling, the TCP-related space requirement may change before
> reaching tcp_diag_put_md5sig(). I.e., the number of TCP-MD5 keys on
> a socket. Thankfully, TCP-MD5-diag won't overwrite the skb, but will
> return EMSGSIZE, triggering WARN_ON() in inet_diag_dump_one_icsk().
Hi Eric!
This was posted while you were away -- any thoughts or recommendation on
how to address the required nl message size changing? Or other problems
pointed out by Dmitry? My suggestion in the subthread is to re-dump
with a fixed, large buffer on EMSGSIZE, but that's not super clean..