2015-10-14 15:23:45 |
Alistair Coles |
bug |
|
|
added bug |
2015-10-14 15:36:31 |
Alistair Coles |
attachment added |
|
acoles-sw-listing-disabled.patch https://bugs.launchpad.net/swift/+bug/1506116/+attachment/4494535/+files/acoles-sw-listing-disabled.patch |
|
2015-10-14 19:29:07 |
Tristan Cacqueray |
bug task added |
|
ossa |
|
2015-10-14 19:29:11 |
Tristan Cacqueray |
ossa: status |
New |
Incomplete |
|
2015-10-14 19:29:34 |
Tristan Cacqueray |
description |
When a container has `X-Container-Meta-Web-Listings: false` then staticweb will return a 404 in response to a GET or HEAD on the container, regardless of whether the request is auth'd. That provides a way to probe for container existence. It shoudl return a 401 if the request is not auth'd.
This is related to but distinct from bug https://bugs.launchpad.net/swift/+bug/1489749 which reports that staticweb will return success on a GET when the container has `X-Container-Meta-Web-Listings: true`, regardless of the request being auth'd.
Here, the only information revealed is the existence of the container.
To reproduce (with tempauth):
# first, setup normal auth'd static web listing on c1...
swift@u134:~/swift$ swift post -r '.r:*,.rlistings' c1
swift@u134:~/swift$ swift post -m 'web-listings: yes' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:09-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
<snip>
# now disable web listings, request is still auth'd by the rlistings in ACL...
swift@u134:~/swift$ swift post -m 'web-listings: no' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:24-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:24 ERROR 404: Not Found.
# now remove the ACL form the container...
swift@u134:~/swift$ swift post -r '' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:43-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:43 ERROR 404: Not Found.
# ...ah! staticweb just told us this container exists :(
# whereas this one does not...
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/nonexistent/
--2015-10-14 16:12:59-- http://localhost:8080/v1/AUTH_test/nonexistent/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed. |
This issue is being treated as a potential security risk under embargo. Please do not make any public mention of embargoed (private) security vulnerabilities before their coordinated publication by the OpenStack Vulnerability Management Team in the form of an official OpenStack Security Advisory. This includes discussion of the bug or associated fixes in public forums such as mailing lists, code review systems and bug trackers. Please also avoid private disclosure to other individuals not already approved for access to this information, and provide this same reminder to those who are made aware of the issue prior to publication. All discussion should remain confined to this private bug report, and any proposed fixes should be added to the bug as attachments.
When a container has `X-Container-Meta-Web-Listings: false` then staticweb will return a 404 in response to a GET or HEAD on the container, regardless of whether the request is auth'd. That provides a way to probe for container existence. It shoudl return a 401 if the request is not auth'd.
This is related to but distinct from bug https://bugs.launchpad.net/swift/+bug/1489749 which reports that staticweb will return success on a GET when the container has `X-Container-Meta-Web-Listings: true`, regardless of the request being auth'd.
Here, the only information revealed is the existence of the container.
To reproduce (with tempauth):
# first, setup normal auth'd static web listing on c1...
swift@u134:~/swift$ swift post -r '.r:*,.rlistings' c1
swift@u134:~/swift$ swift post -m 'web-listings: yes' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:09-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
<snip>
# now disable web listings, request is still auth'd by the rlistings in ACL...
swift@u134:~/swift$ swift post -m 'web-listings: no' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:24-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:24 ERROR 404: Not Found.
# now remove the ACL form the container...
swift@u134:~/swift$ swift post -r '' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:43-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:43 ERROR 404: Not Found.
# ...ah! staticweb just told us this container exists :(
# whereas this one does not...
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/nonexistent/
--2015-10-14 16:12:59-- http://localhost:8080/v1/AUTH_test/nonexistent/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed. |
|
2015-11-17 16:53:35 |
Tristan Cacqueray |
information type |
Private Security |
Public |
|
2015-11-17 16:53:40 |
Tristan Cacqueray |
ossa: status |
Incomplete |
Won't Fix |
|
2015-11-17 16:55:36 |
Tristan Cacqueray |
description |
This issue is being treated as a potential security risk under embargo. Please do not make any public mention of embargoed (private) security vulnerabilities before their coordinated publication by the OpenStack Vulnerability Management Team in the form of an official OpenStack Security Advisory. This includes discussion of the bug or associated fixes in public forums such as mailing lists, code review systems and bug trackers. Please also avoid private disclosure to other individuals not already approved for access to this information, and provide this same reminder to those who are made aware of the issue prior to publication. All discussion should remain confined to this private bug report, and any proposed fixes should be added to the bug as attachments.
When a container has `X-Container-Meta-Web-Listings: false` then staticweb will return a 404 in response to a GET or HEAD on the container, regardless of whether the request is auth'd. That provides a way to probe for container existence. It shoudl return a 401 if the request is not auth'd.
This is related to but distinct from bug https://bugs.launchpad.net/swift/+bug/1489749 which reports that staticweb will return success on a GET when the container has `X-Container-Meta-Web-Listings: true`, regardless of the request being auth'd.
Here, the only information revealed is the existence of the container.
To reproduce (with tempauth):
# first, setup normal auth'd static web listing on c1...
swift@u134:~/swift$ swift post -r '.r:*,.rlistings' c1
swift@u134:~/swift$ swift post -m 'web-listings: yes' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:09-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
<snip>
# now disable web listings, request is still auth'd by the rlistings in ACL...
swift@u134:~/swift$ swift post -m 'web-listings: no' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:24-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:24 ERROR 404: Not Found.
# now remove the ACL form the container...
swift@u134:~/swift$ swift post -r '' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:43-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:43 ERROR 404: Not Found.
# ...ah! staticweb just told us this container exists :(
# whereas this one does not...
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/nonexistent/
--2015-10-14 16:12:59-- http://localhost:8080/v1/AUTH_test/nonexistent/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed. |
When a container has `X-Container-Meta-Web-Listings: false` then staticweb will return a 404 in response to a GET or HEAD on the container, regardless of whether the request is auth'd. That provides a way to probe for container existence. It shoudl return a 401 if the request is not auth'd.
This is related to but distinct from bug https://bugs.launchpad.net/swift/+bug/1489749 which reports that staticweb will return success on a GET when the container has `X-Container-Meta-Web-Listings: true`, regardless of the request being auth'd.
Here, the only information revealed is the existence of the container.
To reproduce (with tempauth):
# first, setup normal auth'd static web listing on c1...
swift@u134:~/swift$ swift post -r '.r:*,.rlistings' c1
swift@u134:~/swift$ swift post -m 'web-listings: yes' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:09-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
<snip>
# now disable web listings, request is still auth'd by the rlistings in ACL...
swift@u134:~/swift$ swift post -m 'web-listings: no' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:24-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:24 ERROR 404: Not Found.
# now remove the ACL form the container...
swift@u134:~/swift$ swift post -r '' c1
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/c1/
--2015-10-14 16:12:43-- http://localhost:8080/v1/AUTH_test/c1/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-14 16:12:43 ERROR 404: Not Found.
# ...ah! staticweb just told us this container exists :(
# whereas this one does not...
swift@u134:~/swift$ wget localhost:8080/v1/AUTH_test/nonexistent/
--2015-10-14 16:12:59-- http://localhost:8080/v1/AUTH_test/nonexistent/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed. |
|
2015-11-23 18:29:58 |
OpenStack Infra |
swift: status |
New |
In Progress |
|
2016-04-19 02:00:30 |
OpenStack Infra |
swift: status |
In Progress |
Fix Released |
|
2016-04-21 16:55:31 |
OpenStack Infra |
tags |
|
in-feature-crypto |
|
2016-05-31 23:39:41 |
OpenStack Infra |
tags |
in-feature-crypto |
in-feature-crypto in-feature-hummingbird |
|