Image location can be used to capture user tokens
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance |
Confirmed
|
High
|
Unassigned | ||
OpenStack Security Advisory |
Opinion
|
Undecided
|
Unassigned | ||
OpenStack Security Notes |
New
|
Undecided
|
Unassigned |
Bug Description
When the glance server is running with a multi-tenant swift store, it is possible to use a command such as the following to create an image:
$ glance --os-image-
+-----
| Property | Value |
+-----
| checksum | None |
| container_format | bare |
| created_at | 2016-03-
| deleted | False |
| deleted_at | None |
| disk_format | raw |
| id | 3fae88b9-
| is_public | False |
| min_disk | 0 |
| min_ram | 0 |
| name | img2 |
| owner | 1a93b08616534cf
| protected | False |
| size | 37 |
| status | active |
| updated_at | 2016-03-
| virtual_size | None |
+-----
Subsequent requests for that image will send a request, *including a token*, to the specified URL. The URL can contain any IP address.
The URL can be anything. It could for example be a 'bad' swift server, controlled by the image creator, which allows anonymous access to the object in question while logging the incoming tokens.
In this way one user can access valid tokens of all users which access the image in question. Other users may access that image if it is a public image, or if it has been shared with them.
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.