addrblock: Narrow selectors when rekeying a CHILD_SA as original responder

If a the original responder narrows the selectors of its peer in addrblock,
the peer gets a subset of that selectors. However, once the original responder
initiates rekeying of that CHILD_SA, it sends the full selectors to the peer,
and then narrows the received selectors locally for the installation, only.

This is insufficient, as the peer ends up with wider selectors, sending traffic
that the original responder will reject to the stricter IPsec policy. So
additionally narrow the selectors when rekeying CHILD_SAs before sending the
TS list to the peer.
This commit is contained in:
Martin Willi
2017-03-24 08:17:01 +01:00
parent db12675ec4
commit 3610d7607e
@@ -105,6 +105,7 @@ METHOD(listener_t, narrow, bool,
switch (type)
{
case NARROW_RESPONDER:
case NARROW_INITIATOR_PRE_AUTH:
case NARROW_INITIATOR_POST_AUTH:
case NARROW_INITIATOR_POST_NOAUTH:
narrow_addrblock(this, ike_sa, remote);