Every CVE Search/ Get API key

CVE-2022-42324

Oxenstored 32->31 bit integer truncation issues Integers in Ocaml are 63 or 31 bits of signed...

5.5 MediumFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.30%Down 0.6 points since Nov 2, 2022
90%50%10%1%

What each source reports

NVD Score used 5.5

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.

Record
CVE-2022-42324
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-681
Updated
2026-11-02
CVE List No score

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.

Record
CVE-2022-42324
Updated
2026-11-02
EUVDEUVD-2022-45399 No score

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.

Record
EUVD-2022-45399
Updated
2026-11-03
GitHub AdvisoriesGHSA-2hqj-m7qj-9pc3 5.5

Oxenstored 32->31 bit integer truncation issues Integers in Ocaml are 63 or 31 bits of signed...

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.

Record
GHSA-2hqj-m7qj-9pc3
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-119, CWE-681
Updated
2026-11-02
OSVALPINE-CVE-2022-42324 5.5

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.

Record
ALPINE-CVE-2022-42324
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-03
OSV 5.5

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.

Record
CVE-2022-42324
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2022-42324 5.5

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.

Record
UBUNTU-CVE-2022-42324
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2022-42324 No score

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.

Record
DEBIAN-CVE-2022-42324
Updated
2026-11-03

Affected products

Affected packages

Affected packages
PackageAffectedFixed
xen
Alpine:v3.14
before 4.15.4-r0
4.15.4-r0
xen
Alpine:v3.15
before 4.15.4-r0
4.15.4-r0
xen
Alpine:v3.18
before 4.17.0-r0
4.17.0-r0
xen
Alpine:v3.19
before 4.17.0-r0
4.17.0-r0
xen
Alpine:v3.20
before 4.17.0-r0
4.17.0-r0
xen
Alpine:v3.21
before 4.17.0-r0
4.17.0-r0
xen
Alpine:v3.22
before 4.17.0-r0
4.17.0-r0
xen
Alpine:v3.23
before 4.17.0-r0
4.17.0-r0
xen
Alpine:v3.24
before 4.17.0-r0
4.17.0-r0
xen
Debian:12
before 4.16.2+90-g0d39a6d1ae-1
4.16.2+90-g0d39a6d1ae-1
Show 11 moreShow less
Affected packages
PackageAffectedFixed
xen
Debian:13
before 4.16.2+90-g0d39a6d1ae-1
4.16.2+90-g0d39a6d1ae-1
xen
Debian:14
before 4.16.2+90-g0d39a6d1ae-1
4.16.2+90-g0d39a6d1ae-1
xen
Debian:11
From an advisory covering 22 CVEs
before 4.14.5+86-g1c354767d5-1, plus listed versions
4.14.2+25-gb6a8c4f72d-24.14.3+32-g9de3671772-14.14.3+32-g9de3671772-1~deb11u14.14.3-14.14.3-1~deb11u14.14.4+74-gd7b22226b5-14.14.5+24-g87d90d511c-1
4.14.5+86-g1c354767d5-1
xen
Ubuntu:16.04:LTS
All versions, plus listed versions
4.5.1-0ubuntu14.5.1-0ubuntu24.6.0-1ubuntu14.6.0-1ubuntu24.6.0-1ubuntu4
Show 7 moreShow less
4.6.0-1ubuntu4.14.6.0-1ubuntu4.24.6.0-1ubuntu4.34.6.5-0ubuntu14.6.5-0ubuntu1.14.6.5-0ubuntu1.24.6.5-0ubuntu1.4
None known
xen
Ubuntu:18.04:LTS
All versions, plus listed versions
4.9.0-0ubuntu34.9.0-0ubuntu44.9.2-0ubuntu1
None known
xen
Ubuntu:20.04:LTS
All versions, plus listed versions
4.9.2-0ubuntu24.9.2-0ubuntu64.9.2-0ubuntu74.11.3+24-g14b62ab3e5-1ubuntu14.11.3+24-g14b62ab3e5-1ubuntu24.11.3+24-g14b62ab3e5-1ubuntu2.24.11.3+24-g14b62ab3e5-1ubuntu2.3
None known
xen
Ubuntu:22.04:LTS
All versions, plus listed versions
4.11.4+24-gddaaccbbab-1ubuntu24.16.0-1~ubuntu24.16.0-1~ubuntu2.1
None known
xen
Ubuntu:24.04:LTS
All versions, plus listed versions
4.17.2-14.17.2+55-g0b56bed864-14.17.2+76-ge1f9cb16e2-14.17.2+76-ge1f9cb16e2-1ubuntu14.17.3+10-g091466ba55-14.17.3+10-g091466ba55-1.1ubuntu24.17.3+10-g091466ba55-1.1ubuntu3
None known
xen
Ubuntu:25.10
All versions, plus listed versions
4.20.0-1ubuntu14.20.0+68-g35cb38b222-1
None known
xen
Ubuntu:26.10
All versions, plus listed versions
4.20.2+7-g1badcf5035-2build24.20.2+37-g61ff35323e-1ubuntu14.20.3+127-gc42374a105-1
None known
xen
Ubuntu:26.04:LTS
All versions, plus listed versions
4.20.0+68-g35cb38b222-14.20.2+7-g1badcf5035-24.20.2+7-g1badcf5035-2build2
None known

History

History
RecordedChangedSources
affected, factsOSV
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2022-42324 is a medium vulnerability (CVSS 5.5) in Xen, published November 1, 2022. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.30%, the 22nd percentile. Fixed in xen 4.15.4-r0.

References

Show 11 moreShow less
MoveEnter Open