Skip to content
Fencer Intel
medium 5.5

CVE-2021-28687 json

HVM soft-reset crashes toolstack libxl requires all data structures passed across its public interface to be initialized before use and dis…

published 5y ago modified 4mo ago also EUVD-2021-15344

cvss
5.5
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
0.3%
EPSS 0.3% chance of exploitation in 30 days, percentile 24%
public exploits
0
none known

Summary

HVM soft-reset crashes toolstack libxl requires all data structures passed across its public interface to be initialized before use and disposed of afterwards by calling a specific set of functions. Many internal data structures also require this initialize / dispose discipline, but not all of them. When the "soft reset" feature was implemented, the libxl__domain_suspend_state structure didn't require any initialization or disposal. At some point later, an initialization function was introduced for the structure; but the "soft reset" path wasn't refactored to call the initialization function. When a guest nwo initiates a "soft reboot", uninitialized data structure leads to an assert() when later code finds the structure in an unexpected state. The effect of this is to crash the process monitoring the guest. How this affects the system depends on the structure of the toolstack. For xl, this will have no security-relevant effect: every VM has its own independent monitoring process, which contains no state. The domain in question will hang in a crashed state, but can be destroyed by `xl destroy` just like any other non-cooperating domain. For daemon-based toolstacks linked against libxl, such as libvirt, this will crash the toolstack, losing the state of any in-progress operations (localized DoS), and preventing further administrator operations unless the daemon is configured to restart automatically (system-wide DoS). If crashes "leak" resources, then repeated crashes could use up resources, also causing a system-wide DoS.

Patch / fix

  • xen Debian 14, Debian 13, Debian 12 4.14.2+25-gb6a8c4f72d-1

debian advisories DEBIAN-CVE-2021-28687

  • xen SLES for SAP 15 SP1, SLES 15 SP1-LTSS, SLES 15 SP1-BCL +6 more 4.12.4_08-3.43.3
  • xen SLE Module for Server Applications 15 SP2, SLE Module for Basesystem 15 SP2, SLE Micro 5.0 4.13.2_08-3.25.3
  • xen SLES for SAP 12 SP5, SLES 12 SP5, SLE Software Development Kit 12 SP5 4.12.4_09-3.39.3

suse advisories SUSE-SU-2021:1460-1SUSE-SU-2021:1028-1SUSE-SU-2021:1023-1

  • xen openSUSE Tumbleweed 4.15.1_01-1.2

opensuse advisories openSUSE-SU-2024:11520-1

  • xen Alpine 3.12, Alpine 3.11 4.13.3-r0
  • xen Alpine 3.24, Alpine 3.23, Alpine 3.22 +8 more 4.15.0-r0

alpine advisories ALPINE-CVE-2021-28687

Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

Is CVE-2021-28687 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2021-28687 updated cvss 5.1

xen: HVM soft-reset crashes toolstack (XSA-368)

  • Red Hat All currently supported Red Hat products
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

Exploit prediction

0.31% chance of exploitation in the next 30 days, higher than 24% of all scored CVEs (FIRST EPSS, 2026-11-09).

CVSS scores

assigned by version score vector
NVD 3.1 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
NVD 2.0 4.9 AV:L/AC:L/Au:N/C:N/I:N/A:C

Affected products

  • Xen xen

Classification

Weakness
  • CWE-909 Missing Initialization of Resource

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.