swift/swift/common/middleware
Clay Gerrard 0694e1911d Disallow unsafe tempurl operations to point to unauthorized data
Do not allow PUT tempurls to create pointers to other data. Specifically
disallow the creation of DLO object manifests by returning an error if a
non-safe tempurl request includes an X-Object-Manifest header regardless of
the value of the header.

This prevents discoverability attacks which can use any PUT tempurl to probe
for private data by creating a DLO object manifest and then using the PUT
tempurl to head the object which would 404 if the prefix does not match any
object data or form a valid DLO HEAD response if it does.

This also prevents a tricky and potentially unexpected consequence of PUT
tempurls which would make it unsafe to allow a user to download objects
created by tempurl (even if they just created them) because the result of
reading the object created via tempurl may not be the data which was uploaded.

[CVE-2015-5223]

Co-Authored-By: Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>

Closes-Bug: 1453948

Change-Id: I91161dfb0f089c3990aca1b4255b520299ef73c8
2015-08-26 07:54:02 -07:00
..
x_profile updated hacking rules 2014-09-25 11:04:31 -07:00
__init__.py Initial commit of middleware refactor 2010-08-20 00:42:38 +00:00
account_quotas.py Fix account quota mw for handling a bad source path 2014-02-19 13:32:32 +01:00
acl.py Fix invalid account acl generating 500 response. 2014-02-19 18:32:53 +00:00
bulk.py Rework use of constraints to ease testing 2014-04-02 23:48:01 -04:00
catch_errors.py Let users add their own txid suffixes 2014-05-16 15:29:47 -04:00
cname_lookup.py Allow multiple storage_domain in cname_lookup. 2014-01-26 10:45:19 +00:00
container_quotas.py Handle COPY verb in container quota middleware 2014-02-04 12:30:20 +01:00
container_sync.py Add Storage Policy Support to Container Sync 2014-06-18 21:09:54 -07:00
crossdomain.py Fix misspellings in swift 2014-02-20 16:15:48 +08:00
dlo.py Rework use of constraints to ease testing 2014-04-02 23:48:01 -04:00
domain_remap.py Allow empty reseller prefixes in domain_remap 2014-04-23 23:59:28 +01:00
formpost.py Move multipart MIME parser into utils 2014-09-16 10:10:59 -07:00
gatekeeper.py Block X-Backend* in gatekeeper 2014-03-20 18:53:54 -07:00
healthcheck.py Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
keystoneauth.py Update documentation for using keystone auth 2014-09-15 13:11:44 +01:00
list_endpoints.py Update doc for list_endpoints v2 API 2014-07-24 09:37:35 +01:00
memcache.py Fix for memcache middleware configuration 2013-11-26 18:03:33 +00:00
name_check.py Add documentation for GateKeeper 2014-01-23 15:04:23 -05:00
proxy_logging.py Disable case-changing behavior in Eventlet 2014-06-25 12:26:06 +09:00
ratelimit.py use get_container_info in ratelimit 2014-09-25 16:29:57 +00:00
recon.py Add Storage Policy Support to Recon Middleware 2014-06-18 21:09:54 -07:00
slo.py Range requests not working with sub_SLOs 2014-04-01 08:37:15 -07:00
staticweb.py Improve StaticWeb 404 on web-listings/index 2014-02-18 11:46:31 +00:00
tempauth.py Changed several files to be Python3 friendly 2014-06-12 11:19:05 -07:00
tempurl.py Disallow unsafe tempurl operations to point to unauthorized data 2015-08-26 07:54:02 -07:00
xprofile.py updated hacking rules 2014-09-25 11:04:31 -07:00