Public bug reported:

Horizon can be made to expose internal data structures from HTTP
requests, this a security hazard.

See for example:

GET /api/swift/containers/test01s/metadata/nonexistantFile.txt HTTP/1.1
Host: example.com
...

Response:

HTTP/1.1 404 Not Found
Date: Tue, 11 Sep 2018 19:30:11 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 98
Vary: Accept-Language,Cookie
X-Frame-Options: SAMEORIGIN
Content-Language: en
Content-Type: application/json

"Object HEAD failed:
http://123.456.789.012:8080/swift/v1/test01s/nonexistantFile.txt 404 Not
Found"

---------

Note, the Object Store endpoint configured on the /project/api_access
page as "http://example.com:8080/swift/v1";, so exposing the internal url
is incorrect.

It should return smth like:
"Object HEAD failed: 
http://example.com:8080/swift/v1/test01s/nonexistantFile.txt 404 Not Found" , 
or just hide url at all

To reproduce:
1. Log into Horizon with Firefox
2. Open up Web Developer Tools
3. Navigate to Project -> Object Store -> Containers
4. pick a GET from the Network tab in developer tool that is for 
/api/swift/containers, copy it as cUrl and append 
"test01s/metadata/nonexistantFile.txt" onto the end of the URL.

Note you need to do this quickly otherwise the auth token will expire. If that 
happens just refresh page and edit request quickly.
5. Observe url present in response

** Affects: horizon
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1794767

Title:
  Horizon exposes url in Swift error message

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  Horizon can be made to expose internal data structures from HTTP
  requests, this a security hazard.

  See for example:

  GET /api/swift/containers/test01s/metadata/nonexistantFile.txt HTTP/1.1
  Host: example.com
  ...

  Response:

  HTTP/1.1 404 Not Found
  Date: Tue, 11 Sep 2018 19:30:11 GMT
  Server: Apache/2.4.18 (Ubuntu)
  Content-Length: 98
  Vary: Accept-Language,Cookie
  X-Frame-Options: SAMEORIGIN
  Content-Language: en
  Content-Type: application/json

  "Object HEAD failed:
  http://123.456.789.012:8080/swift/v1/test01s/nonexistantFile.txt 404
  Not Found"

  ---------

  Note, the Object Store endpoint configured on the /project/api_access
  page as "http://example.com:8080/swift/v1";, so exposing the internal
  url is incorrect.

  It should return smth like:
  "Object HEAD failed: 
http://example.com:8080/swift/v1/test01s/nonexistantFile.txt 404 Not Found" , 
or just hide url at all

  To reproduce:
  1. Log into Horizon with Firefox
  2. Open up Web Developer Tools
  3. Navigate to Project -> Object Store -> Containers
  4. pick a GET from the Network tab in developer tool that is for 
/api/swift/containers, copy it as cUrl and append 
"test01s/metadata/nonexistantFile.txt" onto the end of the URL.

  Note you need to do this quickly otherwise the auth token will expire. If 
that happens just refresh page and edit request quickly.
  5. Observe url present in response

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1794767/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to