<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-02T14:54:51.175284+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/cve-2026-23519</id>
    <title>CVE-2026-23519 — RustCrypto cmov: thumbv6m-none-eabi compiler emits non-constant time assembly when using cmovnz</title>
    <updated>2026-10-02T14:54:51.205809+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> RustCrypto utils</p>
<p>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.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/cve-2026-23519"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-2gqc-6j2q-83qp</id>
    <title>GHSA-2gqc-6j2q-83qp — RustCrypto Utilities cmov: `thumbv6m-none-eabi` compiler emits non-constant time assembly when using `cmovnz`</title>
    <updated>2026-10-02T14:54:51.205866+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> crates.io: cmov</p>
<p>### Summary</p>
<p>`thumbv6m-none-eabi` (Cortex M0, M0+ and M1) compiler emits non-constant time assembly when using `cmovnz` (portable version). I did not found any other target with the same behaviour but I did not go through all targets supported by Rust.</p>
<p>### Details</p>
<p>It seems that, [during `mask` computation](https://github.com/RustCrypto/utils/blob/9e555db060c80f4669d804f448a524a37d201b32/cmov/src/portable.rs#L78), an LLVM optimisation pass is detecting that [`bitnz`](https://github.com/RustCrypto/utils/blob/9e555db060c80f4669d804f448a524a37d201b32/cmov/src/portable.rs#L13) is returning 0 or 1, that can be interpreted as a boolean. This intermediate value is not masked by a call to `black_box` and thus the subsequent [`.wrapping_sub(1)`](https://github.com/RustCrypto/utils/blob/9e555db060c80f4669d804f448a524a37d201b32/cmov/src/portable.rs#L78C1-L78C84) can be interpreted as a conditional bitwise conditional not.</p>
<p>### PoC</p>
<p>This is an attempt at having a minimal faulty code. In a library crate with an up-to-date `cmov` as only dependency, the content of `src/lib.rs` is:</p>
<p>```rust
#![no_std]
use cmov::Cmov;</p>
<p>#[inline(never)]
pub fn test_ct_cmov(a: &amp;mut u8, b: u8, c: u8) {
    a.cmovnz(&amp;b, c);
}
```</p>
<p>The resulting assembly emitted (shown using `cargo asm --release --target thumbv6m-none-eabi` that uses [`cargo-show-asm`](https://crates.io/crates/cargo-show-asm)):</p>
<p>&lt;details&gt;
&lt;summary&gt;Collapsed assembly&lt;/summary&gt;</p>
<p>```asm
.section .text.not_ct::test_ct_cmov,"ax",%progbits
	.globl…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-2gqc-6j2q-83qp"/>
  </entry>
</feed>
