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.
Published: 2026-09-16
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Apply Update
AI Analysis

Impact

In the Linux kernel IPv6 stack, a race condition between RTM_NEWROUTE processing and a concurrent ignore_routes_with_linkdown update causes rt6_multipath_rebalance to compute a zero total weight in its first pass but then attempt to divide by that zero in a second pass. The division by zero triggers a kernel panic through rt6_upper_bound_set, which appears as an Oops and brings the system down. The flaw is a classic divide‑by‑zero bug and a race condition that can result in a denial of service.

Affected Systems

The vulnerability is present in the Linux kernel, affecting all builds that have not yet incorporated the upstream patch. The specific product is the Linux kernel; no vendor version range is listed, so any kernel lacking the fix is potentially vulnerable. The fix was deployed in a commit that modifies the route calculation logic to skip upper‑bound calculation when the first pass reports a zero total.

Risk and Exploitability

No CVSS score or EPSS data is provided, and the vulnerability is not listed in the CISA KEV catalog, leaving the quantitative risk unclear. Because the fault occurs during netlink processing of IPv6 routing updates, the most likely exploitation path would involve an attacker able to send malformed routing messages to a target kernel, which may be local or remote depending on firewall and kernel configuration. The division‑by‑zero panic can crash the kernel, leading to service disruption. Until an update is applied, the vulnerability remains exploitable under the inferred attack scenarios.

Generated by OpenCVE AI on September 16, 2026 at 14:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the commit correcting rt6_multipath_rebalance.
  • If an update cannot be applied immediately, consider disabling IPv6 routing or forbidding the rt6_multipath_rebalance path via sysctl or kernel command line parameters if available.
  • Regularly apply security patches to the Linux kernel and monitor kernel changelogs for similar routing‑related fixes.

Generated by OpenCVE AI on September 16, 2026 at 14:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 16 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-369

Wed, 16 Sep 2026 09:00:00 +0000

Type Values Removed Values Added
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.
Title ipv6: avoid divide by zero in rt6_multipath_rebalance
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-16T08:48:26.343Z

Reserved: 2026-09-11T19:38:34.766Z

Link: CVE-2026-89790

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-16T09:17:09.827

Modified: 2026-09-16T09:17:09.827

Link: CVE-2026-89790

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-16T14:30:10Z

Weaknesses