Skip to content
OpenAdvisories
Medium · 6.5 CVE-2023-46841 EUVD-2023-51007GHSA-mxh6-2xpg-m77w

x86: shadow stack vs exceptions from emulation stubs

Published Mar 20, 2024 · Updated Nov 4, 2025 · Assigned by XEN

Description

Recent x86 CPUs offer functionality named Control-flow Enforcement
Technology (CET). A sub-feature of this are Shadow Stacks (CET-SS).
CET-SS is a hardware feature designed to protect against Return Oriented
Programming attacks. When enabled, traditional stacks holding both data
and return addresses are accompanied by so called "shadow stacks",
holding little more than return addresses. Shadow stacks aren't
writable by normal instructions, and upon function returns their
contents are used to check for possible manipulation of a return address
coming from the traditional stack.

In particular certain memory accesses need intercepting by Xen. In
various cases the necessary emulation involves kind of replaying of
the instruction. Such replaying typically involves filling and then
invoking of a stub. Such a replayed instruction may raise an
exceptions, which is expected and dealt with accordingly.

Unfortunately the interaction of both of the above wasn't right:
Recovery involves removal of a call frame from the (traditional) stack.
The counterpart of this operation for the shadow stack was missing.

Affected products

VendorProductAffectedFixed
Xen Xen — —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 xen 4.17.3+36-g54dacb5c02-1 —
Debian 13 xen 4.17.3+36-g54dacb5c02-1 —
Debian 12 xen 4.17.5+23-ga4e5191dc0-1 DSA-5836-1
ReleasePackageFixed inAdvisory
Ubuntu 26.10 xen No fix yet —
Ubuntu 26.04 LTS xen No fix yet —
Ubuntu 25.10 xen No fix yet —
Ubuntu 24.04 LTS xen No fix yet —
Ubuntu 22.04 LTS xen No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS xen No fix yet —
Ubuntu 18.04 LTS xen No fix yet —
Ubuntu 16.04 LTS xen No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP5 xen 4.17.3_06-150500.3.24.1 SUSE-SU-2024:1102-1, SUSE-SU-2024:0830-1
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 5.5 xen 4.17.3_06-150500.3.24.1 SUSE-SU-2024:1102-1, SUSE-SU-2024:0830-1
SLE Micro 5.4 xen 4.16.5_14-150400.4.49.1 SUSE-SU-2024:0934-1
SLE Micro 5.3 xen 4.16.5_14-150400.4.49.1 SUSE-SU-2024:0934-1
SLE Micro 5.2 xen 4.14.6_12-150300.3.66.1 SUSE-SU-2024:0935-1
SLE Micro 5.1 xen 4.14.6_12-150300.3.66.1 SUSE-SU-2024:0935-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed xen 4.18.0_06-2.1 openSUSE-SU-2024:13745-1
openSUSE Leap 15.5 xen 4.17.3_06-150500.3.24.1 SUSE-SU-2024:1102-1, SUSE-SU-2024:0830-1
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.4 xen 4.16.5_14-150400.4.49.1 SUSE-SU-2024:0934-1
openSUSE Leap Micro 5.3 xen 4.16.5_14-150400.4.49.1 SUSE-SU-2024:0934-1
ReleasePackageFixed inAdvisory
Alpine v3.24 xen 4.18.0-r4 —
Alpine v3.23 xen 4.18.0-r4 —
Alpine v3.22 xen 4.18.0-r4 —
Alpine v3.21 xen 4.18.0-r4 —
Alpine v3.20 xen 4.18.0-r4 —
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 xen 4.18.0-r4 —
Alpine v3.18 xen 4.17.3-r1 —
Alpine v3.17 xen 4.16.5-r7 —
Alpine v3.16 xen 4.16.5-r7 —

Advisories 7

References