Skip to content

Commit 6fa5ddc

Browse files
klassertdavem330
authored andcommitted
xfrm: Don't allow esn with disabled anti replay detection
Unlike the standard case, disabled anti replay detection needs some nontrivial extra treatment on ESN. RFC 4303 states: Note: If a receiver chooses to not enable anti-replay for an SA, then the receiver SHOULD NOT negotiate ESN in an SA management protocol. Use of ESN creates a need for the receiver to manage the anti-replay window (in order to determine the correct value for the high-order bits of the ESN, which are employed in the ICV computation), which is generally contrary to the notion of disabling anti-replay for an SA. So return an error if an ESN state with disabled anti replay detection is inserted for now and add the extra treatment later if we need it. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 43a4dea commit 6fa5ddc

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

net/xfrm/xfrm_replay.c

+3
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,9 @@ int xfrm_init_replay(struct xfrm_state *x)
535535
replay_esn->bmp_len * sizeof(__u32) * 8)
536536
return -EINVAL;
537537

538+
if ((x->props.flags & XFRM_STATE_ESN) && replay_esn->replay_window == 0)
539+
return -EINVAL;
540+
538541
if ((x->props.flags & XFRM_STATE_ESN) && x->replay_esn)
539542
x->repl = &xfrm_replay_esn;
540543
else

0 commit comments

Comments
 (0)