Files
linux/include/net
Xin Long e4dc99c7c2 sctp: process duplicated strreset out and addstrm out requests correctly
Now sctp stream reconf will process a request again even if it's seqno is
less than asoc->strreset_inseq.

If one request has been done successfully and some data chunks have been
accepted and then a duplicated strreset out request comes, the streamin's
ssn will be cleared. It will cause that stream will never receive chunks
any more because of unsynchronized ssn. It allows a replay attack.

A similar issue also exists when processing addstrm out requests. It will
cause more extra streams being added.

This patch is to fix it by saving the last 2 results into asoc. When a
duplicated strreset out or addstrm out request is received, reply it with
bad seqno if it's seqno < asoc->strreset_inseq - 2, and reply it with the
result saved in asoc if it's seqno >= asoc->strreset_inseq - 2.

Note that it saves last 2 results instead of only last 1 result, because
two requests can be sent together in one chunk.

And note that when receiving a duplicated request, the receiver side will
still reply it even if the peer has received the response. It's safe, As
the response will be dropped by the peer.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-04-18 13:39:50 -04:00
..
2017-01-12 04:01:17 -05:00
2014-09-18 10:54:36 +02:00
2017-02-07 13:07:46 -05:00
2015-06-28 16:55:44 -07:00
2016-06-27 15:06:17 -04:00
2016-07-08 12:20:57 +02:00
2016-04-25 16:44:27 -04:00
2016-04-25 16:44:27 -04:00
2016-06-09 23:41:03 -07:00
2015-03-06 21:50:02 -05:00
2015-09-17 17:18:37 -07:00
2017-04-17 11:03:17 -04:00
2016-02-16 20:21:48 -05:00
2017-01-11 11:02:47 -05:00
2017-04-03 19:04:48 -07:00
2016-05-20 18:03:16 -04:00
2016-04-27 22:48:25 -04:00
2017-02-03 15:16:45 -05:00
2017-03-17 12:49:43 +01:00
2017-04-13 13:19:48 -04:00
2016-08-17 19:36:23 -04:00
2016-10-03 02:00:22 -04:00
2016-10-04 02:11:51 -04:00
2017-04-12 13:59:21 -04:00
2016-07-08 12:20:57 +02:00
2016-03-23 22:09:58 -04:00
2017-02-17 12:08:05 -05:00
2016-12-25 17:21:22 +01:00
2017-01-09 16:07:41 -05:00
2015-03-12 22:58:12 -04:00
2016-05-03 16:08:14 -04:00
2015-10-26 22:24:22 -07:00