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. Prior to 0.4.4, the thumbv6m-none-eabi (Cortex M0, M0+ and M1) compiler emits non-constant time assembly when using cmovnz (portable version). This vulnerability is fixed in 0.4.4.
Published: 2026-01-15
Score: 8.9 High
EPSS: < 1% Very Low
KEV: No
Impact: Timing side‑channel leading to information leakage
Action: Immediate Patch
AI Analysis

Impact

RustCrypto CMOV offers conditional move CPU intrinsics intended to execute in constant‑time, ensuring that the compiler does not replace them with branching. Prior to version 0.4.4, compiling this crate for the thumbv6m-none-eabi target (Cortex M0, M0+, and M1) resulted in non‑constant‑time assembly for the cmovnz operation, violating the constant‑time guarantee and creating a data‑dependent timing side‑channel. This flaw permits an attacker who can observe execution timings to infer secret data processed by the intrinsic, potentially compromising cryptographic operations that rely on CMOV for confidentiality.

Affected Systems

The affected product is the RustCrypto utils crate, specifically the CMOV component. Versions before 0.4.4 compiled for the thumbv6m-none-eabi target are vulnerable. The vulnerability manifests on Cortex M0, M0+, and M1 silicon where the compiler emits insecure assembly. Upgrading to version 0.4.4 or later resolves the issue.

Risk and Exploitability

The CVSS score of 8.9 indicates high severity, while the EPSS score of less than 1% shows that exploitation is likely rare, and the vulnerability is not listed in the CISA KEV catalog. The attack requires an attacker who can run the vulnerable code and accurately measure execution time, either locally or via a remote timing oracle. If successful, the attacker can reconstruct confidential data processed by the CMOV operations. The lack of observable branching in the original design amplifies the risk of covert channel leakage.

Generated by OpenCVE AI on April 18, 2026 at 06:01 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the official patch by upgrading the RustCrypto utils crate to version 0.4.4 or later.
  • Verify that the compiled binary targets thumbv6m-none-eabi emit the corrected constant‑time instructions.
  • Ensure that no other constant‑time dependencies contain similar compiler‑specific regressions by auditing the crate’s release notes and running static‑analysis tools for timing‑leak detection.

Generated by OpenCVE AI on April 18, 2026 at 06:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2gqc-6j2q-83qp RustCrypto Utilities cmov: `thumbv6m-none-eabi` compiler emits non-constant time assembly when using `cmovnz`
History

Fri, 23 Jan 2026 19:00:00 +0000

Type Values Removed Values Added
First Time appeared Rustcrypto cmov
Weaknesses CWE-203
CPEs cpe:2.3:a:rustcrypto:cmov:*:*:*:*:*:rust:*:*
Vendors & Products Rustcrypto cmov
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Fri, 16 Jan 2026 14:15:00 +0000

Type Values Removed Values Added
First Time appeared Rustcrypto
Rustcrypto utils
Vendors & Products Rustcrypto
Rustcrypto utils

Thu, 15 Jan 2026 20:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 15 Jan 2026 19:30:00 +0000

Type Values Removed Values Added
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. Prior to 0.4.4, the thumbv6m-none-eabi (Cortex M0, M0+ and M1) compiler emits non-constant time assembly when using cmovnz (portable version). This vulnerability is fixed in 0.4.4.
Title RustCrypto cmov: thumbv6m-none-eabi compiler emits non-constant time assembly when using cmovnz
Weaknesses CWE-208
References
Metrics cvssV4_0

{'score': 8.9, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-01-15T19:57:48.741Z

Reserved: 2026-01-13T18:22:43.980Z

Link: CVE-2026-23519

cve-icon Vulnrichment

Updated: 2026-01-15T19:57:33.242Z

cve-icon NVD

Status : Analyzed

Published: 2026-01-15T20:16:05.313

Modified: 2026-01-23T18:59:58.223

Link: CVE-2026-23519

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-18T06:15:15Z

Weaknesses