Hi, Gorry,

On 2/16/2017 8:47 AM, Gorry Fairhurst wrote:
>>
> The point was that according to this spec (as currently written), an
> off-path attacker can trivially inject an ICMPv6 message into the
> traffic, which then causes a host to accept a different PathMTU.
> Normally a transport design would expect ICMP messages to be at least
> checked against the list of known connections, so that successfully
> mounting this attack required the  packet to correspond to ports that
> are in use. (Usually unknown to an off-path attacker).

Agreed - but IMO this has nothing to do with "encapsulation" or
tunneling, AFAICT.

>
>>>>>
>>>>> Moreover, other layers view ICMP messages with suspicion and have
>>>>> long
>>>>> noted the need to check ICMP payload and match only packets that
>>>>> relate to actual 5-tuples in use (effectively reducing vulnerability
>>>>> to off-path attacks). For example, the Guidelines for UDP,
>>>>> rfc5405bis,
>>>>> state:
>>>>>
>>>>> " Applications SHOULD appropriately validate the payload of ICMP
>>>>>    messages to ensure these are received in response to transmitted
>>>>>    traffic (i.e., a reported error condition that corresponds to a
>>>>> UDP
>>>>>    datagram actually sent by the application). …“
>>>
>>> The comment below could easily be handled by something that clearly
>>> indicates the problem and points to the tunnel draft for guidance, I
>>> agree no need to go into algorithms/methods here.
>>
>> The problem isn't unique to tunnels - it happens on any link whose MTU
>> can vary, and IMO the solution is the same. React to the change in
>> subsequent traffic, rather than attempting to rely in ICMP relaying from
>> signaling inside the link layer -- regardless of that link layer.
>>
>> Joe
>>
> I'd be fine with recommending that way of working - but if the host
> reacts to ICMP, it is important to try to verify ICMPv6 messages
> before accepting them. 

I think that's a fine punchline. The key is what "verification" means -
as you note, a transport connection might not want to react to
conflicting information and no entity (transport, OS, etc.) ought to
react to nonsensical info (attempts to push MTU below required minimums).

Joe

Reply via email to