Information

Advisory XSA-400
Public release 2022-04-05 12:00
Updated 2022-04-05 12:02
Version 2
CVE(s) CVE-2022-26358 CVE-2022-26359 CVE-2022-26360 CVE-2022-26361
Title IOMMU: RMRR (VT-d) and unity map (AMD-Vi) handling issues

Files

advisory-400.txt (signed advisory file)
xsa400/xsa400-01.patch
xsa400/xsa400-02.patch
xsa400/xsa400-03.patch
xsa400/xsa400-4.12-00.patch
xsa400/xsa400-4.12-01.patch
xsa400/xsa400-4.12-02.patch
xsa400/xsa400-4.12-03.patch
xsa400/xsa400-4.12-04.patch
xsa400/xsa400-4.12-05.patch
xsa400/xsa400-4.12-06.patch
xsa400/xsa400-4.12-07.patch
xsa400/xsa400-4.12-08.patch
xsa400/xsa400-4.12-09.patch
xsa400/xsa400-4.12-10.patch
xsa400/xsa400-4.12-11.patch
xsa400/xsa400-4.13-00.patch
xsa400/xsa400-4.13-01.patch
xsa400/xsa400-4.13-02.patch
xsa400/xsa400-4.13-03.patch
xsa400/xsa400-4.13-04.patch
xsa400/xsa400-4.13-05.patch
xsa400/xsa400-4.13-06.patch
xsa400/xsa400-4.13-07.patch
xsa400/xsa400-4.13-08.patch
xsa400/xsa400-4.13-09.patch
xsa400/xsa400-4.13-10.patch
xsa400/xsa400-4.13-11.patch
xsa400/xsa400-4.14-01.patch
xsa400/xsa400-4.14-02.patch
xsa400/xsa400-4.14-03.patch
xsa400/xsa400-4.14-04.patch
xsa400/xsa400-4.14-05.patch
xsa400/xsa400-4.14-06.patch
xsa400/xsa400-4.14-07.patch
xsa400/xsa400-4.14-08.patch
xsa400/xsa400-4.14-09.patch
xsa400/xsa400-4.14-10.patch
xsa400/xsa400-4.14-11.patch
xsa400/xsa400-4.15-01.patch
xsa400/xsa400-4.15-02.patch
xsa400/xsa400-4.15-03.patch
xsa400/xsa400-4.15-04.patch
xsa400/xsa400-4.15-05.patch
xsa400/xsa400-4.15-06.patch
xsa400/xsa400-4.15-07.patch
xsa400/xsa400-4.15-08.patch
xsa400/xsa400-4.15-09.patch
xsa400/xsa400-4.15-10.patch
xsa400/xsa400-4.15-11.patch
xsa400/xsa400-4.15-12.patch
xsa400/xsa400-4.16-01.patch
xsa400/xsa400-4.16-02.patch
xsa400/xsa400-4.16-03.patch
xsa400/xsa400-4.16-04.patch
xsa400/xsa400-4.16-05.patch
xsa400/xsa400-4.16-06.patch
xsa400/xsa400-4.16-07.patch
xsa400/xsa400-4.16-08.patch
xsa400/xsa400-4.16-09.patch
xsa400/xsa400-4.16-10.patch
xsa400/xsa400-4.16-11.patch
xsa400/xsa400-4.16-12.patch
xsa400/xsa400-04.patch
xsa400/xsa400-05.patch
xsa400/xsa400-06.patch
xsa400/xsa400-07.patch
xsa400/xsa400-08.patch
xsa400/xsa400-09.patch
xsa400/xsa400-10.patch
xsa400/xsa400-11.patch
xsa400/xsa400-12.patch

Advisory


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

 Xen Security Advisory CVE-2022-26358,CVE-2022-26359,CVE-2022-26360,CVE-2022-26361 / XSA-400
                                          version 2

       IOMMU: RMRR (VT-d) and unity map (AMD-Vi) handling issues

UPDATES IN VERSION 2
====================

Public release.

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

Certain PCI devices in a system might be assigned Reserved Memory
Regions (specified via Reserved Memory Region Reporting, "RMRR") for
Intel VT-d or Unity Mapping ranges for AMD-Vi.  These are typically used
for platform tasks such as legacy USB emulation.

Since the precise purpose of these regions is unknown, once a device
associated with such a region is active, the mappings of these regions
need to remain continuouly accessible by the device.  This requirement
has been violated.

Subsequent DMA or interrupts from the device may have unpredictable
behaviour, ranging from IOMMU faults to memory corruption.

IMPACT
======

The precise impact is system specific, but would likely be a Denial of
Service (DoS) affecting the entire host.  Privilege escalation and
information leaks cannot be ruled out.

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

All Xen versions supporting PCI passthrough are affected.

Only x86 systems with IOMMU hardware are vulnerable.  Arm systems
as well as x86 systems without IOMMU hardware or without any IOMMUs in
use are not vulnerable.

Only x86 guests which have physical devices passed through to them,
and only when any such device has an associated RMRR or unity map, can
leverage the vulnerability. (Whether a device is associated with an RMRR
or unity map is not easy to discern.)

MITIGATION
==========

Not passing through physical devices to untrusted guests when the
devices have assoicated RMRRs / unity maps will avoid the vulnerability.

CREDITS
=======

Aspects of this issue were discovered by Jan Beulich of SUSE and
Roger Pau Monné of Citrix.

RESOLUTION
==========

Applying the appropriate set of attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa400/xsa400-??.patch          xen-unstable
xsa400/xsa400-4.16-*.patch      Xen 4.16.x
xsa400/xsa400-4.15-*.patch      Xen 4.15.x
xsa400/xsa400-4.14-*.patch      Xen 4.14.x
xsa400/xsa400-4.13-*.patch      Xen 4.13.x
xsa400/xsa400-4.12-*.patch      Xen 4.12.x

$ sha256sum xsa400*/*
108544235a011e96e8717e9e744190fd8128e99cca8141f682667bd7b8533f45  xsa400/xsa400-01.patch
1648ef0213dd6beeaa782a18926416a00aa51ad89136aa1565debd5312bf58aa  xsa400/xsa400-02.patch
39e02738ce3d3a65c02355dd45cb844ecca8be9715b7887dedcdaada02c4bda1  xsa400/xsa400-03.patch
2d5e7f4090418d817df002b7cd7a9a40246ff9900faf53fc2b2f685ac77b2a0e  xsa400/xsa400-4.12-00.patch
a4291033d1960f8095a11e765072f60cf9e5be07d4cd0cbfed1896f9c66a4576  xsa400/xsa400-4.12-01.patch
2f5b2ce22ae6cba8a5380ccf63ae2dcf6e7ce8f29a33c87c0630abc6c1d24793  xsa400/xsa400-4.12-02.patch
86ee30d46957f63e4516ea47f14470579d0906fd536b39e31645e2cd471c1b49  xsa400/xsa400-4.12-03.patch
546430f61df3eb92a55e32047cce8557d85a8e860f67d558c35fea44e7c56b18  xsa400/xsa400-4.12-04.patch
178463bf81b138668c2f036b11a0b9406a6f5bb98c0643741787ccdf276495d9  xsa400/xsa400-4.12-05.patch
b19c599eb5eb17f8e0e17879174a4235fdc3f2172bc77bffdee60074ef2d7c90  xsa400/xsa400-4.12-06.patch
02eae481f2b06763dd913b46a65837791147b7916bbd0ed50e5d972784b310aa  xsa400/xsa400-4.12-07.patch
298339cc343d9803158abd0c36030f36e7dc8360ccfed320f34ff01813c47434  xsa400/xsa400-4.12-08.patch
9253d7120db39a1e3c14fc6b8735577f3d215837996eed057511146c0ba199d6  xsa400/xsa400-4.12-09.patch
762bbe418c028449812b4441c4e369230477eeea4d863c05a2efd9c7e5e19bc3  xsa400/xsa400-4.12-10.patch
7172957a27cdf02327c28b5cfedf35b12e76cb17237cbb9c318442961f503fe6  xsa400/xsa400-4.12-11.patch
c685d9ee2453728f509a78506930f756118ff443fbe6d5307873e90455b5e131  xsa400/xsa400-4.13-00.patch
0b0a80a249c9c58726f913df24163976cfaadabc685d3d274dd7b972fe4cbffc  xsa400/xsa400-4.13-01.patch
eabee7d9cabe00748e78fda0363818ca6085ac395804658a11f94394236d2734  xsa400/xsa400-4.13-02.patch
66cd2a0ee8a002668e04e2bb7192ac2f774012434765988bdea0a7e79621f58c  xsa400/xsa400-4.13-03.patch
4457c142c1fdc67e0dc77a57bc57159ee63dc1946e432ae1225937c7ed3a3e82  xsa400/xsa400-4.13-04.patch
2feabcbcf160d8c1130b2c86efd98dd9fee0332489520f3a10aa8bb37d6a5a20  xsa400/xsa400-4.13-05.patch
903099123d37806b7fe684d75ab0fb6a28b4609d7370cce65a9ba5ab4db43ddd  xsa400/xsa400-4.13-06.patch
e8a39d36f629b7f79634d09d22ace97f1c23ee10ee9fef6afd68ec2204c55d81  xsa400/xsa400-4.13-07.patch
d85c63917542d2d2b47dd6322b4c32364719be4707acf616290aacd536c57805  xsa400/xsa400-4.13-08.patch
5496ca04a2789603069ca8e8d3bf6d301c19c799ccff813bf17865b46f687757  xsa400/xsa400-4.13-09.patch
8b343f3616c0283caac334b4f0cc42b1523f2dc9de3463f2edadbf1a11c17a22  xsa400/xsa400-4.13-10.patch
577d20d2ed5da8a89f32eae717a140f9ec3900e31fc9e10ee23e37ae5dc19d4a  xsa400/xsa400-4.13-11.patch
bfa82c6beae9ec8ab88e042296442eed3ca162b42124c982785c7c0d95440480  xsa400/xsa400-4.14-01.patch
f8f7da8d0cc3d149874956e9aefe666a2e33275dba66ed0d55f0b559d078f01f  xsa400/xsa400-4.14-02.patch
49acd3d795aa091f8fa1c72b5064b5a71966e77c9785f5d0f8226d99daba3ead  xsa400/xsa400-4.14-03.patch
0ce4435a8c7fd6f4186ea31d29932094b1a902d9d0c5dafa3fcb1c15c5eca88c  xsa400/xsa400-4.14-04.patch
aeae4cef4bf31ecd854ad820239fe793f36ed81c0ad28ce3935ab3f83c3ee58c  xsa400/xsa400-4.14-05.patch
f8d93e2ab3f891f70abd17ddba9aae8237605f1f680754ff9df646e5ddb9d419  xsa400/xsa400-4.14-06.patch
afb9f731ba7a53930626e322ebb39db19f817b5c60710fc934c395fcdea4c7f4  xsa400/xsa400-4.14-07.patch
c236bb7b5c692cf30e7b84e6668f87b248bcf80c6df1dd74c655b91b955eb271  xsa400/xsa400-4.14-08.patch
6c4d44983eae92212be6bda7663198260bdeb0506c5b622c38ddbcedf9360d69  xsa400/xsa400-4.14-09.patch
5393c6681c675c666396f6725c2ac2e48293465e97bc228dcfc410ee84d8ba7c  xsa400/xsa400-4.14-10.patch
8d1dcdeb4d9420840a6753bb56f35bf199af63a6c477f2352e47222df5337c1a  xsa400/xsa400-4.14-11.patch
f52a70fd92c4819658630c9d478ae03a9801352b024240059877d0ee2002e31e  xsa400/xsa400-4.15-01.patch
243a0b20b20c78b41f833004c82ce26b1249285671f150bdfe4a2314860df316  xsa400/xsa400-4.15-02.patch
175f2472f80dacffcee578543f4fc4521f5533de46199ce86b072bfd0ede9ae3  xsa400/xsa400-4.15-03.patch
dee6fbe9e3c03d695bae1f81cebca80ca54ecf02a51db64ae5f3d313837eed8c  xsa400/xsa400-4.15-04.patch
55a35033b8ba45b1c9c556e0c2866733e518137299f2f3f4d41046766898aeb5  xsa400/xsa400-4.15-05.patch
94ec5289a3a632fed8d220478847ef3b780d7db345f30ee9d6b186905de61048  xsa400/xsa400-4.15-06.patch
50cbb08b931cd1cc8ec3e2aa17b537db80dcd03a6de0994331fc3818f53cbfe4  xsa400/xsa400-4.15-07.patch
e4c77fac42b8b0b50cdc9de30f406176c44de75d647e36b4bbd6360dd70c8aa6  xsa400/xsa400-4.15-08.patch
652cd8700b830b3520db325cfd90eab6c08bd423debb21c05caa7edfef9ee671  xsa400/xsa400-4.15-09.patch
50e58d663690475ce35a0a65eda88a2c2da319ddc02eb15b5a7d568a8f0a0366  xsa400/xsa400-4.15-10.patch
37a18da6ad1f529bfdc4156225f18c17c10a45302b7d6045ee38c934656589da  xsa400/xsa400-4.15-11.patch
ff069d123df2aba7a4f3185f21f7ca36b34fc026dcdd279224c86698f84c0975  xsa400/xsa400-4.15-12.patch
76497919563cdf2804f5071325c032acd04cf8df75c0dcb4b207a93b9ae80927  xsa400/xsa400-4.16-01.patch
150f2a7621ec17d6369a6ebbc2c08c502f3524acb89855a86a25d7b4fa3e3270  xsa400/xsa400-4.16-02.patch
cd59bca0fcab4bda1d0ea839501543a59b53aef61e96a0d949675bc5550a6fcb  xsa400/xsa400-4.16-03.patch
098edab3ed8915a3598badaa1d452f7c8ab2d8e72879dd9bf941b2093e6df9d1  xsa400/xsa400-4.16-04.patch
a85640291e1bc1cdb757172eb6d2036834ad2eb7b84252cc64d29db3feeff331  xsa400/xsa400-4.16-05.patch
99d43caf1ce60f421d940c2774e2a59d65d1f0dcccd941f13066117a19222b22  xsa400/xsa400-4.16-06.patch
fbe5ec58da594dffd3e63c18406280f27d976609350d7c7083acbf2f2e6538cd  xsa400/xsa400-4.16-07.patch
e6b0d400beda8ff0e9bdbfd033bc23935069b41dbd5dddf863dbd70de44d908f  xsa400/xsa400-4.16-08.patch
965f96bdb33a872942de42597c7cc32012020f37b25a84015ecc55387d6b07dd  xsa400/xsa400-4.16-09.patch
7996b1462374168ddc9cbc01c990d5cb40140d7a100096f284f6b74fb4ad7ec4  xsa400/xsa400-4.16-10.patch
23e325be799b299e9621e76eeff646b81518a4124474fb766d3bf6f0cc925083  xsa400/xsa400-4.16-11.patch
6fa43e1a8f53184724cd4a7b5c13f0fd699c998af968bafaefda570432b5a7d8  xsa400/xsa400-4.16-12.patch
82306d680ef445bee04969028184f65b5e106c89c308fbb876b858f77fea9506  xsa400/xsa400-04.patch
ccf3ff62b427d3d2ea46d4da96beeef2cb64674bc0d247352233c4b84a21f205  xsa400/xsa400-05.patch
8b3f767ca659e8bbf4983927999bdb92d9fa42e3a88973e22facda0e23f29a84  xsa400/xsa400-06.patch
bb570b89a2d4b535831d9211bf08cc0c62c060dc7808911afd8186082b884cf8  xsa400/xsa400-07.patch
8382fd5336b5b4b3388dee099da00b1e728dea77d96825c6088991d7e50f333b  xsa400/xsa400-08.patch
6909363863932ca77c9b7384516965bc1697fab9b4814294a1675fb6ce8e166e  xsa400/xsa400-09.patch
c37fee4dd9ab2bf64ebb8b9c553f793bfcef9a7cf1972b0000fe6ce28b9e8e60  xsa400/xsa400-10.patch
70f11f64457c9703f09c3121d08d5ff4676af20bd42eb1262c433a5e0f79ea41  xsa400/xsa400-11.patch
724e34d262939162ecab713c070cc07b8f7baeca50ee8b62bb59460ec4f7fbdb  xsa400/xsa400-12.patch
$

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

Deployment of the patches 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, deployment of the mitigation is NOT permitted (except where
all the affected systems and VMs are administered and used only by
organisations which are members of the Xen Project Security Issues
Predisclosure List).  Specifically, deployment on public cloud systems
is NOT permitted.

This is because removal of pass-through devices or their replacement by
emulated devices is a guest visible configuration change, which may lead
to re-discovery of the issue.

Deployment of this mitigation is permitted only AFTER the embargo ends.

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

(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-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmJML+0MHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZQl8IALuh2RTTSiQBYeybKZPr3QEOfy+L3VFzNbRZeGBc
jpN12lXjzkFvVuTXDu6Cgw1g6yhRrcRnhGWhx3T8RpGeYhHq1GeKSw7+c4NTsiDL
21P9F3mEban6tOUa82V2PTkYfAMMpbn5apOcsMvdlPoEgXdgLPh5HoVIvXQQO6Ni
3MkCN7foV3M07jAiB4ehqrsPLhzGSCCRJfiD9PA1/RnnzCBrspyyWepF7mwzh2cx
1kENmG8mSwA3Eg0fNUMDBi6W+drNmIx4gooYo3LBnCyMgzUrv7+bzkvjpcU8+dAq
H5i2Morbx4j0F/TcQ8+23KjzNvJHbiqKVrIFCoa1z54dGC8=
=tz+l
-----END PGP SIGNATURE-----

Xenproject.org Security Team