// For flags

CVE-2020-11091

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

Severity Score

5.8
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

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.

En Weave Net versiones anteriores a 2.6.3, un atacante capaz de ejecutar un proceso como root en un contenedor puede responder a las peticiones DNS del host y, por lo tanto, insertarse como un servicio falso. En un clúster con una red interna IPv4, si IPv6 no está totalmente deshabilitado en el host (por medio de ipv6.disable=1 en el cmdline del kernel), no estará desconfigurado o configurado en algunas interfaces, pero es muy probable que el reenvío ipv6 este deshabilitado, es decir, /proc/sys/net/ipv6/conf//forwarding == 0. También por defecto, /proc/sys/net/ipv6/conf//accept_ra == 1. La combinación de estos 2 sysctls significa que el host acepta anuncios de enrutadores y configura la pila IPv6 usándolos. Mediante el envío de anuncios de enrutadores maliciosos, un atacante puede reconfigurar el host para redireccionar parte o la totalidad del tráfico IPv6 del host hacia un contenedor controlado por el atacante. Incluso si antes no había tráfico IPv6, si el DNS devuelve registros A (IPv4) y AAAA (IPv6), muchas bibliotecas HTTP intentarán conectarse primero por medio de IPv6 y luego recurrirán a IPv4, dando una oportunidad al atacante para responder. Si por casualidad también se presentarán en el host una vulnerabilidad como RCE del año pasado en apt (CVE-2019-3462), ahora puede escalar al host. Weave Net versión 2.6.3 deshabilita la opción accept_ra en los dispositivos veth que crea

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
High
Privileges Required
High
User Interaction
None
Scope
Changed
Confidentiality
None
Integrity
High
Availability
None
Attack Vector
Network
Attack Complexity
Medium
Authentication
Single
Confidentiality
None
Integrity
Partial
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2020-03-30 CVE Reserved
  • 2020-06-03 CVE Published
  • 2023-03-08 EPSS Updated
  • 2024-08-04 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-350: Reliance on Reverse DNS Resolution for a Security-Critical Action
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Weave
Search vendor "Weave"
Weave Net
Search vendor "Weave" for product "Weave Net"
< 2.6.3
Search vendor "Weave" for product "Weave Net" and version " < 2.6.3"
-
Affected