Skip to content
Fencer Intel
high —

GHSA-q29p-9pfr-j652 json

libcrux-sha3: Incorrect output from SHAKE squeeze functions

published 8mo ago modified 2mo ago also RUSTSEC-2026-0074

cvss
—
not scored
cisa kev
Not listed
not in CISA's catalog
epss
—
no score, EPSS covers CVEs only
public exploits
0
none known

Summary

The incremental squeeze functions in the portable SHAKE XOF API, when attempting to squeeze more than `RATE` (168 for SHAKE128, 136 for SHAKE256) bytes, performed an additional permutation of the state before producing the first output block, thus discarding the first block of `RATE` bytes of valid XOF output.

## Impact This bug impacts users that rely on this XOF API to squeeze more than `RATE` bytes. It does not impact the use of libcrux-sha3 in libcrux-ml-kem or libcrux-ml-dsa.

## Mitigation Starting from version `0.0.8` the squeeze functions correctly output all blocks including the first block.

Patch / fix

  • crates.io libcrux-sha3 0.0.8

Is GHSA-q29p-9pfr-j652 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

Affected packages

ecosystem package affected fixed in
crates.io libcrux-sha3
<0.0.8
>=0.0.0-0, <0.0.8
0.0.8

Classification

Weakness

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.