Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <E1b8S6c-0000XB-Jw@xenbits.xenproject.org>
Date: Thu, 02 Jun 2016 12:52:10 +0000
From: Xen.org security team <security@....org>
To: xen-announce@...ts.xen.org, xen-devel@...ts.xen.org,
 xen-users@...ts.xen.org, oss-security@...ts.openwall.com
CC: Xen.org security team <security@....org>
Subject: Xen Security Advisory 178 (CVE-2016-4963) - Unsanitised driver
 domain input in libxl device handling

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

            Xen Security Advisory CVE-2016-4963 / XSA-178
                              version 3

       Unsanitised driver domain input in libxl device handling

UPDATES IN VERSION 3
====================

Public release.

ISSUE DESCRIPTION
=================

libxl's device-handling code freely uses and trusts information from
the backend directories in xenstore.

The backend domain (driver domain) can store bogus data in the
backend, causing libxl's enquiry functions to fail, confusing
management tools.

A driver domain can also remove its backend directory from xenstore
entirely, preventing the device from showing up in device listings and
preventing it from being removed and replaced.

A driver domain can cause libxl to generate disk eject events for
disks for which the driver domain is not responsible.

IMPACT
======

A malicious driver domain can deny service to management tools.

VULNERABLE SYSTEMS
==================

This vulnerability is only applicable to systems which are using
driver domains, and then only where the driver domain is not intended
to be fully trusted with respect to the host.

Such Xen systems using libxl based toolstacks (for example xl or
libvirt with the libxl driver) are vulnerable.

Note that even with this vulnerability a driver domain based system is
better from a security point of view, than a system where devices are
provided directly by dom0.  Users and vendors of systems using driver
domains should not change their configuration.

MITIGATION
==========

No mitigation is available.

CREDITS
=======

This issue was discovered by Wei Liu from Citrix.

RESOLUTION
==========

Applying the appropriate attached patch set from XSA-175, plus the
appropriate attached patch set below, resolves this issue.

xsa178-unstable/*.patch           xen-unstable

$ sha256sum xsa178-*/*
fd6a1f858d44f618a4e792553598005871f63d12e718bc9b5477d14bf0113386  xsa178-unstable/0001-libxl-Make-copy-of-every-xs-backend-in-libxl-in-_gen.patch
ee6cf66ad385203c49d9b030959715fb885a250aa36b85080e6985a603bb1ddb  xsa178-unstable/0002-libxl-Do-not-trust-backend-in-libxl__device_exists.patch
ea29cf28609c2d467fb7a620601af7bf434b098a7554dada956f11ed50c1b895  xsa178-unstable/0003-libxl-Do-not-trust-backend-for-vtpm-in-getinfo-excep.patch
a2abc4308d9a18f49a02e6ca8ba913d4d9890867b7816dcc19b548836b65af6c  xsa178-unstable/0004-libxl-Do-not-trust-backend-for-vtpm-in-getinfo-uuid.patch
2884e6566c59ae95792d4282e174c6b3d201c1e006b9e0ab57fbaad2b62ecfb9  xsa178-unstable/0005-libxl-cdrom-eject-and-insert-write-to-libxl.patch
d6ac82211d056a386d18b8296a6a1f2e8a65e8156594595b9c34a3a377f1cf98  xsa178-unstable/0006-libxl-Do-not-trust-backend-for-disk-eject-vdev.patch
4c8bb7bee3b624b02796afdfa0157ea1dc49a7f54f34912f992bae201b6bfe40  xsa178-unstable/0007-libxl-Do-not-trust-backend-for-disk-fix-driver-domai.patch
556b14e8783ddd7ad0cb9a561ca43a40b37ccb27cd56337e7714ac0f796ce21b  xsa178-unstable/0008-libxl-Do-not-trust-backend-for-disk-in-getinfo.patch
b51aaa8cca1f367ae51ffb65240831617d4cab4a3fa6d0a2d42728e99ee8cee8  xsa178-unstable/0009-libxl-Do-not-trust-backend-for-cdrom-insert.patch
3ef493e6bda2d2b96a89cf18b55d43fbdb84a2cd5c10c88f04299434c629ba2b  xsa178-unstable/0010-libxl-Do-not-trust-backend-for-channel-in-getinfo.patch
da4db890c9e73fca006bc381f2208f9bff0fc35990c4dd51d59999db27072d33  xsa178-unstable/0011-libxl-Rename-libxl__device_-nic-channel-_from_xs_be-.patch
ae8b043a83cc35beee2205ab621b6f5bc6543f6d4dcdc06c97e07b1a17ca94bf  xsa178-unstable/0012-libxl-Rename-READ_BACKEND-to-READ_LIBXLDEV.patch
936c44de9a344b0634b7bff4f5b3cf9c034a0080e87d267e7a84683a967d1bff  xsa178-unstable/0013-libxl-Have-READ_LIBXLDEV-use-libxl_path-rather-than-.patch
3b65a3140387651cf2ed1bcf8668efecd58fbd274a62a03d785c269b55bea8fe  xsa178-unstable/0014-libxl-Do-not-trust-backend-in-nic-getinfo.patch
6d009153b98fd58f316efa4f39c821cf609b54184726e15f887947321610ed14  xsa178-unstable/0015-libxl-Do-not-trust-backend-for-nic-in-devid_to_devic.patch
3105c062bb2017681f47499e2dd2f6cd2996539068f216a5af7d6143bc726eda  xsa178-unstable/0016-libxl-Do-not-trust-backend-for-nic-in-list.patch
97961ce38d8d77e9d91ee85052fd33e04d19f45e5ddfec61f82dc9c8a78158ea  xsa178-unstable/0017-libxl-Do-not-trust-backend-in-channel-list.patch
6ebb611501b66dca66259d3a790e30ae6d892eb27c6d06577d8f399d619c286b  xsa178-unstable/0018-libxl-Do-not-trust-backend-for-vusb.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

HOWEVER note that deployment of the patches for XSA-175 (which are a
prerequisite for the patches for XSA-178) is restricted.  See
XSA-175's `Deployment During Embargo' section for details.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.


(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEcBAEBAgAGBQJXUCvvAAoJEIP+FMlX6CvZFe0H/3GPDNPPGnUCY9SffiBKFNy/
MxOFZvQFUVShVGvWYfkYHhkaVUkDUlRnnXCoXSxS12BXXQEixywB04+Ma+O4Hcc7
6xAP2iTMeRbbKxIt2BvQJwUov6oV3A/LELC4r2XrjOxugCZUCOYLTOvXuh6toe5V
odiBHucFy4b2ioFw9xUXNwiJo95xIoxM07O+Tg000WaF04nICfdzyqOXEdacuokn
tbXTbciKOC8pv5+sLzZ/lUZ7vyez8U8g/7pDMnt01gmOu9RUVJuF9YQ+5lOePclA
HYP1xiYxFQtGid7PL4NjD7yXgtEkE2nIMMtTXumkvh4VE+lzEy6gizgMuKeKDu4=
=6GJi
-----END PGP SIGNATURE-----

Download attachment "xsa178-unstable/0001-libxl-Make-copy-of-every-xs-backend-in-libxl-in-_gen.patch" of type "application/octet-stream" (3937 bytes)

Download attachment "xsa178-unstable/0002-libxl-Do-not-trust-backend-in-libxl__device_exists.patch" of type "application/octet-stream" (1054 bytes)

Download attachment "xsa178-unstable/0003-libxl-Do-not-trust-backend-for-vtpm-in-getinfo-excep.patch" of type "application/octet-stream" (1980 bytes)

Download attachment "xsa178-unstable/0004-libxl-Do-not-trust-backend-for-vtpm-in-getinfo-uuid.patch" of type "application/octet-stream" (1835 bytes)

Download attachment "xsa178-unstable/0005-libxl-cdrom-eject-and-insert-write-to-libxl.patch" of type "application/octet-stream" (2645 bytes)

Download attachment "xsa178-unstable/0006-libxl-Do-not-trust-backend-for-disk-eject-vdev.patch" of type "application/octet-stream" (2593 bytes)

Download attachment "xsa178-unstable/0007-libxl-Do-not-trust-backend-for-disk-fix-driver-domai.patch" of type "application/octet-stream" (10993 bytes)

Download attachment "xsa178-unstable/0008-libxl-Do-not-trust-backend-for-disk-in-getinfo.patch" of type "application/octet-stream" (1383 bytes)

Download attachment "xsa178-unstable/0009-libxl-Do-not-trust-backend-for-cdrom-insert.patch" of type "application/octet-stream" (3778 bytes)

Download attachment "xsa178-unstable/0010-libxl-Do-not-trust-backend-for-channel-in-getinfo.patch" of type "application/octet-stream" (1633 bytes)

Download attachment "xsa178-unstable/0011-libxl-Rename-libxl__device_-nic-channel-_from_xs_be-.patch" of type "application/octet-stream" (3137 bytes)

Download attachment "xsa178-unstable/0012-libxl-Rename-READ_BACKEND-to-READ_LIBXLDEV.patch" of type "application/octet-stream" (4021 bytes)

Download attachment "xsa178-unstable/0013-libxl-Have-READ_LIBXLDEV-use-libxl_path-rather-than-.patch" of type "application/octet-stream" (2377 bytes)

Download attachment "xsa178-unstable/0014-libxl-Do-not-trust-backend-in-nic-getinfo.patch" of type "application/octet-stream" (1261 bytes)

Download attachment "xsa178-unstable/0015-libxl-Do-not-trust-backend-for-nic-in-devid_to_devic.patch" of type "application/octet-stream" (1581 bytes)

Download attachment "xsa178-unstable/0016-libxl-Do-not-trust-backend-for-nic-in-list.patch" of type "application/octet-stream" (3000 bytes)

Download attachment "xsa178-unstable/0017-libxl-Do-not-trust-backend-in-channel-list.patch" of type "application/octet-stream" (2228 bytes)

Download attachment "xsa178-unstable/0018-libxl-Do-not-trust-backend-for-vusb.patch" of type "application/octet-stream" (2312 bytes)

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.