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
Produtos afetados
Ruint