{"id":"CVE-2026-23519","summary":"RustCrypto cmov: thumbv6m-none-eabi compiler emits non-constant time assembly when using cmovnz","details":"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.","aliases":["GHSA-2gqc-6j2q-83qp","RUSTSEC-2026-0003"],"modified":"2026-08-12T03:51:11.803350455Z","published":"2026-01-15T19:13:54.440Z","related":["CGA-m788-3wqj-jwp5"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23519.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-208"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23519.json"},{"type":"ADVISORY","url":"https://github.com/RustCrypto/utils/security/advisories/GHSA-2gqc-6j2q-83qp"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-23519"},{"type":"FIX","url":"https://github.com/RustCrypto/utils/commit/55977257e7c82a309d5e8abfdd380a774f0f9778"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/rustcrypto/utils","events":[{"introduced":"0"},{"fixed":"24e51d8ae18507b71a2579c84e1f254587690daa"},{"fixed":"55977257e7c82a309d5e8abfdd380a774f0f9778"}],"database_specific":{"source":["CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:rustcrypto:cmov:*:*:*:*:*:rust:*:*","extracted_events":[{"introduced":"0"},{"fixed":"0.4.4"}]}}],"versions":["ctutils-v0.3.1","ctutils-v0.3.0","ctutils-v0.2.3","zeroize_derive-v1.4.2","ctutils-v0.2.2","ctutils-v0.2.1","cmov-v0.4.3","inout-v0.2.2","ctutils-v0.2.0","ctutils-v0.1.4","cmov-v0.4.2","ctutils-v0.1.3","ctutils-v0.1.2","ctutils-v0.1.1","ctutils-v0.1.0","cmov-v0.4.1","block-padding-v0.4.2","block-buffer-v0.11.0","hex-literal-v1.1.0","blobby-v0.4.0","inout-v0.2.1","block-padding-v0.4.1","inout-v0.2.0","block-padding-v0.4.0","blobby-v0.4.0-pre.1","cmov-v0.4.0","dbl-v0.5.0","inout-v0.2.0-rc.6","block-padding-v0.4.0-rc.4","block-buffer-v0.11.0-rc.5","dbl-v0.4.0","inout-v0.2.0-rc.5","dbl-v0.4.0-rc.2","inout-v0.2.0-rc.4","block-padding-v0.4.0-rc.3","block-buffer-v0.11.0-rc.4","blobby-v0.4.0-pre.0","hex-literal-v1.0.0","inout-v0.1.3","cpufeatures-v0.2.17","cpufeatures-v0.2.16","inout-v0.2.0-rc.3","cpufeatures-v0.2.15","inout-v0.2.0-rc.2","dbl-v0.4.0-rc.1","block-padding-v0.4.0-rc.2","block-buffer-v0.11.0-rc.3","inout-v0.2.0-rc.1","block-padding-v0.4.0-rc.1","block-buffer-v0.11.0-rc.2","aarch64-dit-v0.1.0","aarch64-dit-v0.0.1-alpha","cpufeatures-v0.2.14","block-buffer-v0.11.0-rc.1","cpufeatures-v0.2.13","dbl-v0.4.0-rc.0","inout-v0.2.0-rc.0","block-padding-v0.4.0-rc.0","block-buffer-v0.11.0-rc.0","zeroize-v1.8.1","zeroize-v1.8.0","opaque-debug-v0.3.1","block-buffer-v0.11.0-pre.5","inout-v0.2.0-pre.4","dbl-v0.4.0-pre.4","block-padding-v0.4.0-pre.4","block-buffer-v0.11.0-pre.4","hybrid-array-v0.2.0-rc.0","cpufeatures-v0.2.12","hybrid-array-v0.2.0-pre.8","dbl-v0.4.0-pre.3","block-padding-v0.4.0-pre.3","block-buffer-v0.11.0-pre.3","inout-v0.2.0-pre.2","dbl-v0.4.0-pre.2","block-padding-v0.4.0-pre.2","block-buffer-v0.11.0-pre.2","hybrid-array-v0.2.0-pre.7","inout-v0.2.0-pre.1","dbl-v0.4.0-pre.1","block-buffer-v0.11.0-pre.1","hybrid-array-v0.2.0-pre.6","zeroize-v1.7.0","zeroize-v1.6.1","cpufeatures-v0.2.11","hybrid-array-v0.2.0-pre.5","cpufeatures-v0.2.10","cmov-v0.3.1","hybrid-array-v0.2.0-pre.4","hybrid-array-v0.2.0-pre.3","cpufeatures-v0.2.9","cpufeatures-v0.2.8","hybrid-array-v0.2.0-pre.2","hybrid-array-v0.2.0-pre.1","hybrid-array/v0.2.0-pre.0","hybrid-array-v0.2.0-pre.0","cpufeatures-v0.2.7","hex-literal-v0.4.1","cmov-v0.3.0","hex-literal-v0.4.0","block-padding-v0.3.3","zeroize_derive-v1.4.1","zeroize-v1.6.0","zeroize_derive-v1.4.0","cpufeatures-v0.2.6","cmov-v0.2.0","block-buffer-v0.11.0-pre","zeroize_derive-v1.3.3","block-buffer-v0.10.3","cpufeatures-v0.2.5","cpufeatures-v0.2.4","cpufeatures-v0.2.3","zeroize-v1.5.7","zeroize-v1.5.6","hybrid-array-v0.1.0","zeroize-v1.5.5","cpufeatures-v0.2.2","zeroize-v1.5.4","cmov-v0.1.1","cmov-v0.1.0","zeroize-v1.5.3","zeroize_derive-v1.3.2","inout-v0.1.2","hex-literal-impl-v0.2.2","inout-v0.1.1","block-padding-v0.3.1","inout-v0.1.0","block-padding-v0.3.0","block-buffer-v0.10.2","block-buffe-v0.10.2","zeroize-v1.5.2","zeroize-v1.5.1","zeroize_derive-v1.3.1","zeroize-v1.5.0","zeroize_derive-v1.3.0","zeroize-v1.5.0-pre","zeroize_derive-v1.3.0-pre","dbl-v0.3.2","wycheproof2blb-v0.1.0","blobby-v0.3.1","block-buffer-v0.10.0","hex-literal-v0.3.4","zeroize_derive-v1.2.2","zeroize-v1.4.3","zeroize_derive-v1.2.1","crypto-bigint-v0.2.7","crypto-bigint-v0.2.6","crypto-bigint-v0.2.5","pkcs5-v0.3.1","cpufeatures-v0.2.1","cpufeatures-v0.2.0","crypto-bigint-v0.2.4","crypto-bigint-v0.2.3","base64ct-v1.0.1","der-v0.4.1","pkcs8-v0.7.5","pkcs1-v0.2.3","pem-rfc7468-v0.2.0","pkcs1-v0.2.2","pkcs8-v0.7.4","pkcs1-v0.2.1","pkcs1-v0.2.0","pkcs1-v0.1.1","pkcs8-v0.7.3","pkcs1-v0.1.0","pem-rfc7468-v0.1.1","pem-rfc7468-v0.1.0","pkcs8-v0.7.2","pkcs8-v0.7.1","hex-literal-v0.3.3","hex-literal-v0.3.2","crypto-bigint-v0.2.2","crypto-bigint-v0.2.1","cpufeatures-v0.1.5","pkcs8-v0.7.0","pkcs5-v0.3.0","spki-v0.4.0","der_derive-v0.4.0","der-v0.4.0","crypto-bigint-v0.2.0","const-oid-v0.6.0","crypto-bigint-v0.1.0","pkcs5-v0.2.2","pkcs8-v0.6.1","der-v0.3.5","der-v0.3.4","cpufeatures-v0.1.4","cpufeatures-v0.1.3","cpufeatures-v0.1.2","cpufeatures-v0.1.1","pkcs5-v0.2.1","cpufeatures-v0.1.0","block-buffer-v0.10.0-pre.4","block-buffer-v0.10.0-pre.3","const-oid-v0.5.2","der-v0.3.3","const-oid-v0.5.1","der-v0.3.2","der-v0.3.1","pkcs8-v0.6.0","pkcs5-v0.2.0","spki-v0.3.0","der-v0.3.0","der_derive-v0.3.0","const-oid-v0.5.0","pkcs8-v0.5.5","base64ct-v1.0.0","base64ct-v0.2.1","const-oid-v0.4.5","der-v0.2.10","const-oid-v0.4.4","const-oid-v0.4.3","der-v0.2.9","pkcs8-v0.5.4","pkcs8-v0.5.3","pkcs5-v0.1.1","spki-v0.2.1","der-v0.2.8","der_derive-v0.2.2","pkcs8-v0.5.2","pkcs5-v0.1.0","der-v0.2.7","const-oid-v0.4.2","der-v0.2.6","pkcs8-v0.5.1","der-v0.2.5","pkcs8-v0.5.0","spki-v0.1.0","der-v0.2.4","der-v0.2.3","der_derive-v0.2.1","der-v0.2.2","block-buffer-v0.10.0-pre.2","der_derive-v0.2.0","der-v0.2.1","pkcs8-v0.4.1","base64ct-v0.2.0","base64ct-v0.1.2","block-buffer-v0.10.0-pre.1","base64ct-v0.1.1","pkcs8-v0.4.0","base64ct-v0.1.0","der-v0.2.0","dbl-v0.3.1","block-padding-v0.3.0-pre","block-buffer-v0.10.0-pre","pkcs8-v0.4.0-pre","der-v0.2.0-pre","pkcs8-v0.3.3","der_derive-v0.1.0","der-v0.1.0","const-oid-v0.4.1","pkcs8-v0.3.2","pkcs8-v0.3.1","const-oid-v0.4.0","pkcs8-v0.3.0","pkcs8-v0.2.2","pkcs8-v0.2.1","pkcs8-v0.2.0","const-oid-v0.3.5","pkcs8-v0.1.1","const-oid-v0.3.4","const-oid-v0.3.3","pkcs8-v0.1.0","const-oid-v0.3.2","const-oid-v0.3.1","const-oid-v0.3.0","const-oid-v0.2.0","block-padding-v0.2.1","const-oid-v0.1.0","hex-literal-v0.3.1","hex-literal-v0.3.0","blobby-v0.3.0","blobby-v0.2.0","opaque-debug-v0.3.0","block-buffer-v0.9.0","block-padding-v0.2.0","block-padding-v0.1.5","hex-literal-v0.2.1","hex-literal-impl-v0.2.1","hex-literal-v0.2.0","block-padding-v0.1.4","block-buffer-v0.7.3","hex-literal-v0.1.4","hex-literal-v0.1.3","opaque-debug-v0.2.2","hex-literal-v0.1.2","dbl-v0.2.1","byte-tools-v0.3.1","block-padding-v0.1.3","block-buffer-v0.7.2","blobby-v0.1.2","block-buffer-v0.7.1","block-padding-v0.1.2","dbl-v0.2.0","block-buffer-v0.7.0","blobby-v0.1.1","blobby-v0.1.0","block-buffer-v0.6.0","block-padding-v0.1.1","byte-tools-v0.3.0","block-buffer-v0.5.1","block-buffer-v0.5.0","opaque-debug_v0.2.1","opaque-debug-v0.2.1","opaque-debug_v0.2.0","opaque-debug_v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23519.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"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"}]}