[PKG-Openstack-devel] Bug#780250: CVE-2015-0259: Websocket Hijacking Vulnerability in Nova VNC Server

Thomas Goirand zigo at debian.org
Wed Mar 11 07:49:37 UTC 2015


Source: nova
Version: 2014.1.3-10
Severity: grave
Tags: security patch

Maintainer's message: below is the disclosed vulnerability for the Nova
VNC session highjack. I'm preparing an update right now.

Brian Manifold (bmanifol at cisco.com) from Cisco has discovered a
vulnerability in the Nova VNC server implementation. We have a patch for
this vulnerability and consider this a very high risk.

Issue Details:

Horizon uses a VNC client which uses websockets to pass information. The
Nova VNC server does not validate the origin of the websocket request,
which allows an attacker to make a websocket request from another domain.
If the victim opens both an attacker's site and the VNC console
simultaneously, or if the victim has recently been using the VNC console
and then visits the attacker's site, the attacker can make a websocket
request to the Horizon domain and proxy the connection to another
destination.

This gives the attacker full read-write access to the VNC console of any
instance recently accessed by the victim.

Recommendation:
 Verify the origin field in request header on all websocket requests.

Threat:
      CWE-345
 * Insufficient Verification of Data Authenticity -- The software does not
sufficiently verify the origin or authenticity of data, in a way that
causes it to accept invalid data.

      CWE-346
 * Origin Validation Error -- The software does not properly verify that
the source of data or communication is valid.

      CWE-441
 * Unintended Proxy or Intermediary ('Confused Deputy') -- The software
receives a request, message, or directive from an upstream component, but
the software does not sufficiently preserve the original source of the
request before forwarding the request to an external actor that is outside
of the software's control sphere. This causes the software to appear to be
the source of the request, leading it to act as a proxy or other
intermediary between the upstream component and the external actor.

Steps to reproduce:
 1. Login to horizon
 2. Pick an instance, go to console/vnc tab, wait for console to be loaded
 3. In another browser tab or window, load a VNC console script from local
disk or remote site
 4. Point the newly loaded VNC console to the VNC server and a connection
is made
Result:
 The original connection has been been hijacked by the second connection

Root cause:
 Cross-Site WebSocket Hijacking is concept that has been written about in
various security blogs.
One of the recommended countermeasures is to check the Origin header of
the WebSocket handshake request.

Fix proposed to branch: master
Review: https://review.openstack.org/163033

Fix proposed to branch: stable/juno
Review: https://review.openstack.org/163034

Fix proposed to branch: stable/icehouse
Review: https://review.openstack.org/163035



More information about the Openstack-devel mailing list