Skip to content

Commit 6e02a3a

Browse files
authored
Add advisory for unsoundness in keccak ARMv8 backend (#2649)
See also: RustCrypto/sponges#101 Closes #2648
1 parent 239486f commit 6e02a3a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

crates/keccak/RUSTSEC-0000-0000.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
```toml
2+
[advisory]
3+
id = "RUSTSEC-0000-0000"
4+
package = "keccak"
5+
date = "2026-02-12"
6+
url = "https://github.com/RustCrypto/sponges/pull/101"
7+
informational = "unsound"
8+
categories = ["crypto-failure"]
9+
aliases = []
10+
license = "CC0-1.0"
11+
12+
[versions]
13+
patched = [">= 0.1.6"]
14+
```
15+
16+
# Unsoundness in opt-in ARMv8 assembly backend for `keccak`
17+
18+
### Summary
19+
20+
The `asm!` block enabled by the off-by-default `asm` feature, when enabled on ARMv8 targets, misspecified the operand
21+
type for all of its operands, using `in` for pointers and values which were subsequently mutated by operations performed
22+
within the assembly block.
23+
24+
### Impact
25+
26+
It's unclear what practical impact, if any, this actually had. Incorrect operand types are technically undefined
27+
behavior, however changing them had no actual impact on the generated assembly for these targets. The possibility still
28+
exists that it may lead to potential memory safety or other issues on hypothetical future versions of rustc.
29+
30+
### Mitigation
31+
32+
The operand types were changed from `in` to `inout`, and the impacted versions of the `keccak` crate were yanked.

0 commit comments

Comments
 (0)