Hi Sabrina,

2015-09-09 18:10 GMT+08:00 Sabrina Dubroca <s...@queasysnail.net>:
> 2015-09-02, 16:11:10 -0700, David Miller wrote:
>> From: Sabrina Dubroca <s...@queasysnail.net>
>> Date: Wed, 2 Sep 2015 11:43:01 +0200
>>
>> > This reverts commit 8013d1d7eafb0589ca766db6b74026f76b7f5cb4.
>> >
>> > There are several issues with this patch.
>> > It completely cancels the security changes introduced by 6fd99094de2b
>> > ("ipv6: Don't reduce hop limit for an interface").
>> > The current default value (min hop limit = 1) can result in the same
>> > denial of service that 6fd99094de2b prevents, but it is hard to define
>> > a correct and sane default value.
>> > More generally, it is yet another IPv6 sysctl, and we already have too
>> > many.
>> >
>> > This was introduced to satisfy a TAHI test case which, in my opinion, is
>> > too strict, turning the RFC's "SHOULD" into a "MUST":
>> >
>> >     If the received Cur Hop Limit value is non-zero, the host
>> >     SHOULD set its CurHopLimit variable to the received value.
>> >
>> > The behavior of this sysctl is wrong in multiple ways.  Some are
>> > fixable, but let's not rush this commit into mainline, and revert this
>> > while we still can, then we can come up with a better solution.
>> >
>> > Signed-off-by: Sabrina Dubroca <s...@queasysnail.net>
>>
>> I don't agree with this revert.
>>
>> If you look at the original commit, the quoted RFC recommends adding
>> a configurable method to protect against this.
>>
>> And that's exactly what the commit you are trying to revert is doing.
>>
>> The only thing I would entertain is potentially an adjustment of the
>> default, working in concert with the TAHI folks to make sure their
>> tests still pass with any new default.
>
> Would you agree with a default of 64, as Florian suggested?

Set default to 64 make sense to me. It can make the system more security
by default.

>
>
> Can we still modify the behavior of this sysctl? It's already been in
> Linus's tree for a while, but if we can, I would rather restrict the
> values we let the user write to accept_ra_min_hop_limit, as anything
> outside [0..255] does not really make sense.

Yes, so the checked if (in6_dev->cnf.accept_ra_min_hop_limit < 256 &&
ra_msg->icmph.icmp6_hop_limit)  make sure we only update the value between
[1..255].

>
> Allowing an RA to update the hop limit if
>
>    current hop limit < RA.hop_limit < accept_ra_min_hop_limit
>
> might also be desirable, but I'm not so sure about this case.

Yes, and we also should allow an RA to update the hop limit if

accept_ra_min_hop_limit <= RA.hop_limit < current hop limit

e.g accept_ra_min_hop_limit = RA.hop_limit =64, current hop limit = 128

Thanks
Hangbin Liu
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to