CVE-2021-20267
High · 7.1CVSS
7.1
EPSS
1.0%
Published
May 28, 2021
CISA due date
—
Cloudanix analysis
A virtual machine on the network could pretend to be another machine and either block or steal its network traffic, affecting reliability and privacy for everyone sharing that network.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Network Service
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The default Open vSwitch firewall rules in OpenStack Neutron fail to enforce proper IPv6 neighbor discovery and address ownership checks, allowing a compromised instance to send crafted packets that spoof IPv6 addresses belonging to other instances on the same virtual network.
Why it matters to the business
Attackers controlling a single virtual machine can disrupt network connectivity for other tenants or intercept traffic, leading to service outages, data exposure risks, and potential compliance violations in multi-tenant cloud environments using Open vSwitch.
How an attack unfolds
An attacker who has gained control of a virtual machine instance connected to an affected Open vSwitch deployment crafts malicious IPv6 packets (such as forged Neighbor Advertisement or Solicitation messages) that bypass the default firewall rules, enabling address impersonation for denial of service or traffic interception against other systems on the virtual network.
How to fix it
Upgrade OpenStack Neutron to version 15.3.3 or later, 16.3.1 or later, or 17.1.1 or later depending on the deployed release train. Apply the corrected firewall rule sets for the Open vSwitch driver and restart the relevant Neutron agents. If immediate upgrade is not possible, restrict tenant network access and monitor for anomalous IPv6 traffic.
How to confirm the fix worked
Verify that Neutron packages match or exceed the fixed versions listed above, inspect the applied OVS firewall rules for proper IPv6 spoofing protections, and test by attempting IPv6 address impersonation from a test instance to confirm the rules now block unauthorized packets.
Typical attack path
- Gain control of a virtual machine instance attached to the Open vSwitch network
- Craft and transmit malicious IPv6 neighbor discovery packets from that instance
- Impersonate IPv6 addresses of other instances to trigger DoS or redirect traffic
- Exfiltrate intercepted data or maintain the disruption for operational impact
How to detect it
Review Neutron and Open vSwitch logs for repeated or anomalous IPv6 Neighbor Advertisement/Solicitation packets originating from instances, correlate with tenant VM activity logs, and search for unexpected changes in OVS flow tables related to IPv6 address bindings.
What your security team should do
- Prioritize patching all OpenStack deployments using the Open vSwitch driver within the next maintenance window given the multi-year exposure window
- Audit current Neutron configurations to confirm only supported OVS firewall drivers are in use
- Implement network segmentation and least-privilege tenant isolation as a compensating control
- Add monitoring for unusual IPv6 neighbor discovery traffic volumes in virtual networks
The record
A flaw was found in openstack-neutron's default Open vSwitch firewall rules. By sending carefully crafted packets, anyone in control of a server instance connected to the virtual switch can impersonate the IPv6 addresses of other systems on the network, resulting in denial of service or in some cases possibly interception of traffic intended for other destinations. Only deployments using the Open vSwitch driver are affected. Source: OpenStack project. Versions before openstack-neutron 15.3.3, openstack-neutron 16.3.1 and openstack-neutron 17.1.1 are affected.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | neutron | 0 | 15.3.3 |
| PyPI | neutron | 16.0.0 | 16.3.1 |
| PyPI | neutron | 17.0.0 | 17.1.1 |
| Debian:11 | neutron | 0 | 2:17.1.1-5 |
| Debian:12 | neutron | 0 | 2:17.1.1-5 |
| Debian:13 | neutron | 0 | 2:17.1.1-5 |
| Ubuntu:16.04:LTS | neutron | 0 | No fix |
| Ubuntu:18.04:LTS | neutron | 0 | 2:12.1.1-0ubuntu8.1 |
| Ubuntu:20.04:LTS | neutron | 0 | 2:16.4.2-0ubuntu6.2 |
| Ubuntu:22.04:LTS | neutron | 0 | 2:20.3.0-0ubuntu1.1 |
| Ubuntu:Pro:16.04:LTS | neutron | 0 | No fix |
| pypi | neutron | 16.0.0 | No fix |
| pypi | neutron | 17.0.0 | No fix |
Related vulnerabilities
- CVE-2024-53916 In OpenStack Neutron before 25.0.1, neutron/extensions/tagging.py can use an incorrect ID… Also affects neutron
- CVE-2023-3637 An uncontrolled resource consumption flaw was found in openstack-neutron. Also affects neutron
- CVE-2015-3221 OpenStack Neutron before 2014.2.4 (juno) and 2015.1.x before 2015.1.1 (kilo), when using… Also affects neutron
- CVE-2014-3555 OpenStack Neutron before 2013.2.4, 2014.x before 2014.1.2, and Juno before Juno-2 allows… Also affects neutron
- CVE-2014-6414 OpenStack Neutron before 2014.2.4 and 2014.1 before 2014.1.2 allows remote authenticated… Also affects neutron
- CVE-2014-4615 The notifier middleware in OpenStack PyCADF 0.5.0 and earlier, Telemetry (Ceilometer)… Also affects neutron
- CVE-2013-6433 The default configuration in the Red Hat openstack-neutron package before 2013.2.3-7 does… Also affects neutron
- CVE-2026-102682 Pipecat is an open-source Python framework for building real-time voice and multimodal… CWE-345