CVE-2026-33184 PUBLISHED

nimiq/core-rs-albatross: Discovery handshake limit could underflow and later provoke a deterministic overflow panic

Assigner: GitHub_M
Reserved: 17.03.2026 Published: 03.04.2026 Updated: 03.04.2026

nimiq/core-rs-albatross is a Rust implementation of the Nimiq Proof-of-Stake protocol based on the Albatross consensus algorithm. Prior to version 1.3.0, the discovery handler accepts a peer-controlled limit during handshake and stores it unchanged. The immediate HandshakeAck path then honors limit = 0 and returns zero contacts, which makes the session look benign. Later, after the same session reaches Established, the periodic update path computes self.peer_list_limit.unwrap() as usize - 1. With limit = 0, that wraps to usize::MAX and then in rand 0.9.2, choose_multiple() immediately attempts Vec::with_capacity(amount), which deterministically panics with capacity overflow. This issue has been patched in version 1.3.0.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS Score: 7.5

Product Status

Vendor nimiq
Product core-rs-albatross
Versions
  • Version < 1.3.0 is affected

References

Problem Types

  • CWE-191: Integer Underflow (Wrap or Wraparound) CWE