← back
CVE-2020-11091

Weave Net clusters susceptible to MitM attacks via IPv6 rogue router advertisements

CVSS 5.8 MEDIUMEPSS 0.9%CWE-350
In short

Weave Net before 2.6.3 allows an attacker running code in a container to send fake IPv6 router advertisements to redirect network traffic from the host to their container. This can enable intercepting communications and potentially lead to more serious attacks on the system.

Technical detail

An attacker with root access in a container can exploit default IPv6 settings (accept_ra=1, ipv6.forwarding=0) by sending rogue router advertisements to reconfigure the host's IPv6 stack and intercept traffic. The attack leverages DNS AAAA records to force IPv6 connection attempts, and can be chained with host vulnerabilities for privilege escalation or RCE.

Summary generated and translated by AI from the official description.
In Weave Net before version 2.6.3, an attacker able to run a process as root in a container is able to respond to DNS requests from the host and thereby insert themselves as a fake service. In a cluster with an IPv4 internal network, if IPv6 is not totally disabled on the host (via ipv6.disable=1 on the kernel cmdline), it will be either unconfigured or configured on some interfaces, but it's pretty likely that ipv6 forwarding is disabled, ie /proc/sys/net/ipv6/conf//forwarding == 0. Also by default, /proc/sys/net/ipv6/conf//accept_ra == 1. The combination of these 2 sysctls means that the host accepts router advertisements and configure the IPv6 stack using them. By sending rogue router advertisements, an attacker can reconfigure the host to redirect part or all of the IPv6 traffic of the host to the attacker controlled container. Even if there was no IPv6 traffic before, if the DNS returns A (IPv4) and AAAA (IPv6) records, many HTTP libraries will try to connect via IPv6 first then fallback to IPv4, giving an opportunity to the attacker to respond. If by chance you also have on the host a vulnerability like last year's RCE in apt (CVE-2019-3462), you can now escalate to the host. Weave Net version 2.6.3 disables the accept_ra option on the veth devices that it creates.
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:N/I:H/A:N
Affected products
weaveworks · Weave

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →