EspressoSystems / EspressoSystems/espresso-network

RUSTSEC-2026-0012: Unsoundness in opt-in ARMv8 assembly backend for `keccak`

Open
#3,965 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
193
Forks
177
Avg merge
2d 4h
Merged PRs (30d)
60

Description

> Unsoundness in opt-in ARMv8 assembly backend for `keccak`

| Details | |
| ------------------- | ---------------------------------------------- |
| Status | unsound |
| Package | `keccak` |
| Version | `0.1.5` |
| URL | [https://github.com/RustCrypto/sponges/pull/101](https://github.com/RustCrypto/sponges/pull/101) |
| Date | 2026-02-12 |

### Summary

The `asm!` block enabled by the off-by-default `asm` feature, when enabled on ARMv8 targets, misspecified the operand
type for all of its operands, using `in` for pointers and values which were subsequently mutated by operations performed
within the assembly block.

### Impact

It's unclear what practical impact, if any, this actually had. Incorrect operand types are technically undefined
behavior, however changing them had no actual impact on the generated assembly for these targets. The possibility still
exists that it may lead to potential memory safety or other issues on hypothetical future versions of rustc.

### Mitigation

The operand types were changed from `in` to `inout`, and the impacted versions of the `keccak` crate were yanked.

See [advisory page](https://rustsec.org/advisories/RUSTSEC-2026-0012.html) for additional details.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the referenced RustSec advisory and RustCrypto/sponges pull request 101; the issue does not name a repository file, test, or entry point. The advisory says the operand types were changed and affected keccak versions were yanked, so a concrete repository task and completion criteria are still needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cryptography, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.