Every CVE Search/ Get API key

RUSTSEC-2026-0207

Incorrect Output of Incremental Portable SHAKE API on Multiple Squeeze Calls

8.2 HighFix available

The incremental squeeze functions in the portable SHAKE XOF API, when attempting to squeeze an output using multiple calls to squeeze, rather than squeezing the full output at once, could output incorrect values. Internally, output blocks that were not completely squeezed were not buffered for the next call to squeeze, which would consequently drop bytes of the correct squeeze output if the preceding call requested an output of length in bytes not cleanly divisible by RATE (168 for SHAKE128, 136 for SHAKE256).

Impact

This bug impacts users that rely on this XOF API to squeeze output in multiple calls where any of the calls request an output length that is not divisible by RATE. It does not impact the use of libcrux-sha3 in libcrux-ml-kem or libcrux-ml-dsa.

Mitigation

Starting from version 0.0.10 the squeeze functions correctly output all squeezed bytes independent of the number of squeeze calls and the output lengths requested in each call.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

What each source reports

OSV Score used 8.2

Incorrect Output of Incremental Portable SHAKE API on Multiple Squeeze Calls

The incremental squeeze functions in the portable SHAKE XOF API, when attempting to squeeze an output using multiple calls to squeeze, rather than squeezing the full output at once, could output incorrect values. Internally, output blocks that were not completely squeezed were not buffered for the next call to squeeze, which would consequently drop bytes of the correct squeeze output if the preceding call requested an output of length in bytes not cleanly divisible by RATE (168 for SHAKE128, 136 for SHAKE256).

Impact

This bug impacts users that rely on this XOF API to squeeze output in multiple calls where any of the calls request an output length that is not divisible by RATE. It does not impact the use of libcrux-sha3 in libcrux-ml-kem or libcrux-ml-dsa.

Mitigation

Starting from version 0.0.10 the squeeze functions correctly output all squeezed bytes independent of the number of squeeze calls and the output lengths requested in each call.

Record
RUSTSEC-2026-0207
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
libcrux-sha3
crates.io
0.0.0-0 up to 0.0.10
0.0.10

History

History
RecordedChangedSources
first indexedOSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

RUSTSEC-2026-0207 is a high vulnerability (CVSS 8.2) in libcrux-sha3, published April 22, 2026. No source lists public exploit code. Fixed in libcrux-sha3 0.0.10.

References

MoveEnter Open