[OSSA-2016-009] ICMPv6 anti-spoofing rules are too permissive (CVE-2015-8914)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Security Advisory |
Fix Released
|
Undecided
|
Unassigned | ||
neutron |
Fix Released
|
High
|
Dustin Lundquist |
Bug Description
ICMPv6 default firewall rules are too permissive on the hypervisors leaving VMs able to do ICMPv6 source address spoofing.
Pre-condition:
- having a provider-network providing IPv6 connectivity to the VMs
- in my case the controllers are providing statefull DHCPv6 and my physical router provides the default gateway using Router Advertisements.
How to reproduce:
- spin a VM and attach to it an IPv6 enabled network
- obtain an IPv6 address using #dhclient -6
- try to ping6 an IPv6 enabled host
- remove your IPv6 address from the interface: #sudo ip addr del 2001:0DB8::100/32 dev eth0
- add a forged IPv6 address to your interface, into the same subnet of the original IPv6 address: #sudo ip addr add 2001:0DB8::200/32 dev eth0
- try to ping6 the previous IPv6 enabled host, it will still work
- try to assign another IPv6 address to your NIC, completely outside your IPv6 assignment: sudo ip addr add 2001:dead:
- try to ping6 the previous IPv6 enabled host -> the destination will still receive your echo requests with your forget address but you won't receive answers, they won't be router back to you.
Expected behavior:
- VMs should not be able to spoof their IPv6 address and issue forged ICMPv6 packets. The firewall rules on the hypervisor should restrict ICMPv6 egress to the VMs link-local and global-unicast addresses.
Affected versions:
- I saw the issue into OpenStack Juno, under Ubuntu 14.04. But according to the upstream code, the issue is still present into the master branch, into; neutron/
ipv6_rules += [comment_rule('-p icmpv6 -j RETURN', comment=
tags: | added: juno-backport-potential kilo-backport-potential liberty-rc-potential sg-fw |
Changed in neutron: | |
importance: | Undecided → High |
milestone: | none → mitaka-1 |
status: | New → Confirmed |
tags: |
added: liberty-backport-potential removed: liberty-rc-potential |
tags: | removed: juno-backport-potential |
Changed in neutron: | |
milestone: | mitaka-1 → mitaka-2 |
description: | updated |
information type: | Private Security → Public Security |
Changed in neutron: | |
milestone: | mitaka-2 → mitaka-3 |
Changed in neutron: | |
assignee: | nobody → Mohammed Ashraf (mohammed-asharaf) |
Changed in neutron: | |
assignee: | Mohammed Ashraf (mohammed-asharaf) → nobody |
Changed in neutron: | |
milestone: | mitaka-3 → mitaka-rc1 |
Changed in neutron: | |
status: | In Progress → Fix Committed |
Changed in ossa: | |
status: | Confirmed → In Progress |
summary: |
- ICMPv6 anti-spoofing rules are too permissive + ICMPv6 anti-spoofing rules are too permissive (CVE-2015-8914) |
summary: |
- ICMPv6 anti-spoofing rules are too permissive (CVE-2015-8914) + [OSSA-2016-009] ICMPv6 anti-spoofing rules are too permissive + (CVE-2015-8914) |
Changed in ossa: | |
status: | In Progress → Fix Released |
tags: | removed: kilo-backport-potential liberty-backport-potential |
Changed in neutron: | |
status: | Fix Committed → Fix Released |
Since this report concerns a possible security risk, an incomplete security advisory task has been added while the core security reviewers for the affected project or projects confirm the bug and discuss the scope of any vulnerability along with potential solutions.