RUSTSEC-2026-0220 Uint shift operations: incorrect overflow flags and truncated shift amounts

Not scored Published

Incorrect overflow flags and truncated shift amounts in Uint operations can cause infinite loops or incorrect results when processing untrusted input.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is RUSTSEC-2026-0220?

RUSTSEC-2026-0220 is a vulnerability in ruint, published on 8 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

Uint::overflowing_shl/overflowing_shr returned false-negative overflow flags. overflowing_shl missed bits shifted above BITS but within the top limb (non-limb-aligned widths such as U160), and limbs wholly discarded by shifts >= 64; overflowing_shr missed wholly discarded low limbs. Shifted values were correct; only the flag was wrong.

The wrong flag propagates: checked_shl/checked_shr return Some instead of None, strict_* fail to panic, and saturating_* return a wrapped value instead of saturating. The incorrect checked_shl result causes to_base_be (and string formatting) to loop forever on no-alloc builds for non-limb-aligned widths — a denial of service if formatting is reachable from untrusted input.

Separately, wrapping_shl/wrapping_shr on 64/128/256-bit types truncated the shift amount modulo 2^32, so shifts >= 2^32 returned an incorrectly wrapped value instead of zero; on 32-bit targets the generic path also truncated 64-bit shift amounts.

Callers using checked or saturating shift semantics on untrusted shift amounts may compute incorrect results.

Which versions are affected by RUSTSEC-2026-0220?

1 open source package ship an affected version, including ruint.

PackageAffectedFixed in
ruint crates.ioFrom 0.0.0-01.20.0

How do I fix RUSTSEC-2026-0220?

Upgrade ruint to 1.20.0 or later.

Is RUSTSEC-2026-0220 being exploited?

There is no known exploitation of RUSTSEC-2026-0220 in the wild and no public exploit code.

Sources

Is RUSTSEC-2026-0220 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free