PT-2026-66662 · Crates.Io · Ruint

Publicado

2026-07-08

·

Atualizado

2026-07-08

Nenhuma

Não há classificações de severidade ou métricas disponíveis. Quando houver, atualizaremos as informações correspondentes na página.
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.
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Identificadores relacionados

RUSTSEC-2026-0220

Produtos afetados

Ruint