Skip to content
OpenAdvisories
Low · 2.0 CVE-2026-50185 EUVD-2026-45254GHSA-3rjw-m598-pq24

RustCrypto Cmov/CmovEq on aarch64 can produce wrong results if high-bits of registers are set

Published Jul 17, 2026 · Updated Jul 20, 2026 · Assigned by GitHub_M

Description

RustCrypto CMOV provides conditional move CPU intrinsics which are guaranteed on major platforms to execute in constant-time and not be rewritten as branches by the compiler. From 0.1.1 until 0.5.4, the aarch64 implementations of Cmov and CmovEq in cmov/src/backends/aarch64.rs assume high bits are zero-extended when loading values smaller than a register, so set high bits such as [8..] in a Cmov selector or [16..] of self or other in the u16 and i16 CmovEq implementations can cause left.cmovz(&right, condition) to produce incorrect output. This issue is fixed in version 0.5.4.

Affected products

VendorProductAffectedFixed
RustCrypto utils >= 0.1.1, < 0.5.4 —

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 rust-cmov 0.5.4-1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 rust-cmov No fix yet —
ReleasePackageFixed inAdvisory
Red Hat Hardened Images 1 rust +18 1.97.1-1.1.hum1 RHSA-2026:42923

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 amazon-efs-utils 3.3.2-1.amzn2023 ALAS2023-2026-3132
Amazon Linux 2023 rust +14 1.97.0-2.amzn2023 ALAS2023-2026-2065
Amazon Linux 2 amazon-efs-utils 3.3.2-1.amzn2 ALAS2-2026-3948
Amazon Linux 2 rust +11 1.97.0-2.amzn2 ALAS2-2026-3865

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling deno 2.9.1-r1 —
Wolfi rolling mountpoint-s3 1.22.3-r5 —
Wolfi rolling pixi 0.72.0-r1 —
Wolfi rolling yazi 26.5.6-r5 —

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io cmov >= 0.1.1, < 0.5.4 0.5.4 GHSA-3rjw-m598-pq24

Advisories 5

References