CVE-2026-50185

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:rustcrypto:cmov:*:*:*:*:*:rust:*:*

History

24 Oct 2026, 20:10

Type Values Removed Values Added
Summary
  • (es) RustCrypto CMOV proporciona intrínsecos de CPU de movimiento condicional que están garantizados en las principales plataformas para ejecutarse en tiempo constante y no ser reescritos como bifurcaciones por el compilador. Desde 0.1.1 hasta 0.5.4, las implementaciones aarch64 de Cmov y CmovEq en cmov/src/backends/aarch64.rs asumen que los bits altos se extienden con ceros al cargar valores más pequeños que un registro, por lo que establecer bits altos como [8..] en un selector Cmov o [16..] de self u other en las implementaciones CmovEq de u16 e i16 puede hacer que left.cmovz(&right, condition) produzca una salida incorrecta. Este problema está solucionado en la versión 0.5.4.

Information

Published : 2026-07-17 19:17

Updated : 2026-10-24 20:10


NVD link : CVE-2026-50185

Mitre link : CVE-2026-50185

CVE.ORG link : CVE-2026-50185


JSON object : View

Products Affected

rustcrypto

  • cmov
CWE
CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior