CyberRota Analysis
AI-GeneratedThe RustCrypto CMOV library versions 0.1.1 to 0.5.4 contain a vulnerability in the aarch64 implementations of the Cmov and CmovEq functions, where incorrect handling of high bits during conditional moves can lead to erroneous outputs. This flaw could potentially compromise the integrity of cryptographic operations, making it critical for developers using affected versions in security-sensitive applications to upgrade to version 0.5.4 or later. Organizations relying on RustCrypto for cryptographic functionality should prioritize this update to mitigate risks associated with data integrity.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD 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.