CVSS3
Attack Vector
LOCAL
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
NONE
Integrity Impact
NONE
Availability Impact
HIGH
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
EPSS
Percentile
14.2%
Oxenstored 32->31 bit integer truncation issues Integers in Ocaml are 63 or 31 bits of signed precision. The Ocaml Xenbus library takes a C uint32_t out of the ring and casts it directly to an Ocaml integer. In 64-bit Ocaml builds this is fine, but in 32-bit builds, it truncates off the most significant bit, and then creates unsigned/signed confusion in the remainder. This in turn can feed a negative value into logic not expecting a negative value, resulting in unexpected exceptions being thrown. The unexpected exception is not handled suitably, creating a busy-loop trying (and failing) to take the bad packet out of the xenstore ring.
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
Debian | 12 | all | xen | < 4.16.2+90-g0d39a6d1ae-1 | xen_4.16.2+90-g0d39a6d1ae-1_all.deb |
Debian | 11 | all | xen | < 4.14.5+86-g1c354767d5-1 | xen_4.14.5+86-g1c354767d5-1_all.deb |
Debian | 999 | all | xen | < 4.16.2+90-g0d39a6d1ae-1 | xen_4.16.2+90-g0d39a6d1ae-1_all.deb |
Debian | 13 | all | xen | < 4.16.2+90-g0d39a6d1ae-1 | xen_4.16.2+90-g0d39a6d1ae-1_all.deb |