From: Christoph Paasch <[email protected]>
Date: Mon, 11 Dec 2017 00:05:46 -0800
> The MD5-key that belongs to a connection is identified by the peer's
> IP-address. When we are in tcp_v4(6)_reqsk_send_ack(), we are replying
> to an incoming segment from tcp_check_req() that failed the seq-number
> checks.
>
> Thus, to find the correct key, we need to use the skb's saddr and not
> the daddr.
>
> This bug seems to have been there since quite a while, but probably got
> unnoticed because the consequences are not catastrophic. We will call
> tcp_v4_reqsk_send_ack only to send a challenge-ACK back to the peer,
> thus the connection doesn't really fail.
>
> Fixes: 9501f9722922 ("tcp md5sig: Let the caller pass appropriate key for
> tcp_v{4,6}_do_calc_md5_hash().")
> Signed-off-by: Christoph Paasch <[email protected]>
Applied and queued up for -stable, thanks.