directory listing of the service No-VNC

Bug #1447675 reported by Jeremy Stanley
282
This bug affects 5 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Tony Breeds
OpenStack Security Advisory
Won't Fix
Undecided
Unassigned

Bug Description

Reported via private E-mail from Anass ANNOUR:

I found a directory listing of the service No-VNC.

Related branches

Revision history for this message
Jeremy Stanley (fungi) wrote :
Changed in ossa:
status: New → Incomplete
Revision history for this message
Jeremy Stanley (fungi) wrote :

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.

Revision history for this message
Andrew Laski (alaski) wrote :

Is there further information on the deployment setup here? Is this just novncproxy running on a host, or behind a different webserver, or...?

Revision history for this message
ANNOUR (anass-annour) wrote :

The deployment was in a dev environment (in a LAN), I had installed Openstack (all in one) in ubuntu with the devstack script.

Revision history for this message
Tony Breeds (o-tony) wrote :

Thanks for reporting this.

It's clearly an unintended information disclosure issue. The bug in in websockify and it'd trivial to fix.

Can someone that has been around longer help me understand how we work with websockify to fix this in a sensitive way?

Changed in nova:
assignee: nobody → Tony Breeds (o-tony)
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Andrew Laski (alaski) wrote :

Tony, I'm adding Solly Ross to the bug as he works on websockify and can help on that front.

Revision history for this message
Solly Ross (sross-7) wrote :

It appears that there's a bug in the Websockify source code that causes the `file_only` parameter not to be properly set when passed to the `__init__`. Like you mention, the fix should be trivial. It should be fairly easy to backport the fix to existing noVNC packages as well. How would you like to proceed?

Additionally, in the mean time, adding an index.html file (e.g. `ln -s vnc_auto.html index.html`) will prevent directory listing (this is similar to what the Fedora noVNC package does: http://pkgs.fedoraproject.org/cgit/novnc.git/tree/novnc.spec#n29).

Revision history for this message
Tristan Cacqueray (tristan-cacqueray) wrote :

Since the directory listing only shows packaged files and does not contains any private files I suggest a class D type of bug (http://security.openstack.org/vmt-process.html#incident-report-taxonomy) and propose to open this bug by the end of the week if no one complains.

Revision history for this message
Tony Breeds (o-tony) wrote :

@sross-7 If you're comfortable doing so can you to take the fix (I'll attach my version to be sure we're talking about the same fix) and cut a websockify v0.6.1 release?

A quick grep of the master branches shows:
$ grep websockify */*/requirements.txt
openstack/ironic/requirements.txt:websockify>=0.6.0,<0.7
openstack/nova/requirements.txt:websockify>=0.6.0,<0.7
stackforge/nova-solver-scheduler/requirements.txt:websockify>=0.5.1,<0.6

So cutting v0.6.1 would leave nova-solver-scheduler vulnerable but AFAICT it doesn't actually use websockify :/

Do we want to add a symlink workaround? Do we have a good way to work with packagers to do that?

Revision history for this message
Tony Breeds (o-tony) wrote :

My version of the trivial patch for comparision

Revision history for this message
Solly Ross (sross-7) wrote :

@o-tony:
Your patch looks good.
Regarding the symlink workaround -- it's not particularly necessary if we cut a new release and distros actually package it (since either way involves distros updating their packaging). We may want to offer it as a workaround in case anyone decides they don't want to do a minor release upgrade (for some reason).

At what point in time is ok for me to push the patch and cut the release (when is the embargo lifted)?

Revision history for this message
Tony Breeds (o-tony) wrote :

Of course I defer to the VMT but given this is a 'class D' I think we co-ordinate lifting the embargo with cutting 0.6.1 If we could do that on Monday that would be awesome!

@fungi, @tristan-cacqueray: Does that sounds reasonable?

Revision history for this message
Tristan Cacqueray (tristan-cacqueray) wrote :

This sounds good to me Tony. Note that we better open this bug before pushing the patch (to avoid 404 on bug number if it's referenced.)

The OSSA task is now removed, feel free to open this at your convenience.

Changed in ossa:
status: Incomplete → Won't Fix
Revision history for this message
Tony Breeds (o-tony) wrote :

Unless someone says 'stop' I'll mark this public at 2015-05-12 00:00 UTC and @sross-7 you can cut and release at about that same time.

Revision history for this message
Tony Breeds (o-tony) wrote :

Patches for websockify are now public and 0.6.1 is uploading to pypi.
I've changed this to public.
Thanks @sross-7!

information type: Private Security → Public Security
Revision history for this message
Tony Breeds (o-tony) wrote :

Marking this as committed as the wesockify code has been out there for a while and Liberty has 0.6.1 as the minimum version after https://review.openstack.org/#/c/211062/ and https://review.openstack.org/#/c/213896/ merged.

Changed in nova:
status: Confirmed → Fix Committed
Thierry Carrez (ttx)
Changed in nova:
milestone: none → liberty-3
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: liberty-3 → 12.0.0
Jeremy Stanley (fungi)
description: updated
To post a comment you must log in.
This report contains Public Security information  
Everyone can see this security related information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.