interface-attach to external network a) works and b) results in undeletable instances
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Salvatore Orlando | ||
Havana |
Fix Released
|
Undecided
|
Unassigned | ||
OpenStack Security Advisory |
Invalid
|
Undecided
|
Unassigned | ||
neutron (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Trusty |
Invalid
|
Undecided
|
Unassigned | ||
nova (Ubuntu) |
Fix Released
|
High
|
James Page | ||
Trusty |
Fix Released
|
High
|
James Page |
Bug Description
2013.2.1 release of OpenStack, Neutron OVS plugin.
Users where able to add interfaces using the 'nova interface-attach' command to the external network definition within the OpenStack deployment. This appears to work and the ports are listed in nova port-list <uuid>. However when deleting these instances, nova-compute throws the following error; its also not possible to delete the offending ports from the user tenant; this has to be done from an admin tenant:
neutron port-delete <port>
nova delete <uuid>
2014-02-25 13:03:57.639 40614 ERROR nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
2014-02-25 13:03:57.639 40614 TRACE nova.openstack.
Related branches
information type: | Public → Private Security |
summary: |
- interface-attach to shared external network a) works a b) results in + interface-attach to shared external network a) works and b) results in undeletable instances |
Changed in ossa: | |
status: | New → Incomplete |
Changed in neutron: | |
importance: | Undecided → High |
Changed in neutron: | |
status: | Incomplete → Triaged |
Changed in nova: | |
status: | New → Confirmed |
tags: | added: icehouse-rc-potential |
Changed in nova: | |
assignee: | nobody → Salvatore Orlando (salvatore-orlando) |
no longer affects: | neutron |
Changed in nova: | |
milestone: | none → icehouse-rc2 |
status: | Confirmed → In Progress |
Changed in nova: | |
importance: | Undecided → High |
tags: | removed: icehouse-rc-potential |
Changed in neutron (Ubuntu): | |
status: | New → Invalid |
Changed in nova (Ubuntu Trusty): | |
status: | New → Fix Committed |
importance: | Undecided → High |
assignee: | nobody → James Page (james-page) |
Changed in nova: | |
milestone: | icehouse-rc2 → 2014.1 |
This happens because "shared" networks access rights allow any tenant to create ports, thus overriding the settings for "external" networks where only admins can create ports, but any tenant can create floating IPs.
A potential use case for this would be a deployment where the same publicly connected network can be used to deploy internet facing appliances, such as load balancers, as well as floating IPs allowing access to instances running on private networks.
Whether this scenario makes sense or not, it is debatable. A new constraint might be added to prevent external networks to be made shared as well.
I think the condition in which a tenant can create ports on external networks can be avoided by simply removing the shared attribute for the network. If that's confirmed this is not a security issue.
Even in the case when a network is explicitly made external and shared, I am still not sure I see a security issue of which people choosing this strategy should be aware.
However, the reported issue where a port created with interface-attach can be removed only in admin context looks like a bug and needs to be triaged.