|Public release ||2014-02-06 12:00|
|Updated ||2014-02-10 11:25|
|Title ||Off-by-one error in FLASK_AVC_CACHESTAT hypercall|
Filesadvisory-85.txt (signed advisory file)
-----BEGIN PGP SIGNED MESSAGE-----
Xen Security Advisory CVE-2014-1895 / XSA-85
Off-by-one error in FLASK_AVC_CACHESTAT hypercall
UPDATES IN VERSION 3
The FLASK_AVC_CACHESTAT hypercall, which provides access to per-cpu
statistics on the Flask security policy, incorrectly validates the
CPU for which statistics are being requested.
An attacker can cause the hypervisor to read past the end of an
array. This may result in either a host crash, leading to a denial of
service, or access to a small and static region of hypervisor memory,
leading to an information leak.
Xen version 4.2 and later are vulnerable to this issue when built with
XSM/Flask support. XSM support is disabled by default and is enabled
by building with XSM_ENABLE=y.
Only systems with the maximum supported number of physical CPUs are
vulnerable. Systems with a greater number of physical CPUs will only
make use of the maximum supported number and are therefore vulnerable.
By default the following maximums apply:
* x86_32: 128 (only until Xen 4.2.x)
* x86_64: 256
These defaults can be overridden at build time via max_phys_cpus=N.
The vulnerable hypercall is exposed to all domains.
Rebuilding Xen with more supported physical CPUs can avoid the
vulnerability; provided that the supported number is strictly greater
than the actual number of CPUs on any host on which the hypervisor is
If XSM is compiled in, but not actually in use, compiling it out (with
XSM_ENABLE=n) will avoid the vulnerability.
This issue was discovered by Matthew Daley.
Applying the attached patch resolves this issue.
xsa85.patch xen-unstable, Xen 4.3.x, Xen 4.2.x
$ sha256sum xsa85*.patch
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
-----END PGP SIGNATURE-----
Xenproject.org Security Team