Description
In the Linux kernel, the following vulnerability has been resolved: ipv6: avoid divide by zero in rt6_multipath_rebalance rt6_multipath_rebalance() calculates the total eligible nexthop weight in one pass and programs upper bounds in a second pass. Since RTM_NEWROUTE is RTNL-free, a concurrent ignore_routes_with_linkdown update can make the first pass return zero while the second sees an eligible nexthop, causing rt6_upper_bound_set() to divide by zero. UBSAN: division-overflow in net/ipv6/route.c:4845:17 Oops: divide error: 0000 [#1] SMP KASAN NOPTI rt6_upper_bound_set() net/ipv6/route.c:4845 rt6_multipath_rebalance() fib6_add_rt2node() ip6_route_multipath_add() inet6_rtm_newroute() Skip upper-bound calculation when the first pass reports a zero total. This respects the lock-free performance considerations here and solves insecure scenarios.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
bd11ff421d36abdb585b9104fa70057bf01b3110 to < f30cf8fd9872299c0c27f9916252ba2b9f422dceaffectedbd11ff421d36abdb585b9104fa70057bf01b3110 to < f82b5dbb2fef65b52a62d5ffe05e0483c4385a83affectedbd11ff421d36abdb585b9104fa70057bf01b3110 to < d2c26c2911dd1a363c488add4fb63eb5f0f28f87affected
Linux Linux
Default version status: affected
6.16affected0 to < 6.16unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected