GitHub Advisoryadvisory · crates.io

GHSA-27w2-87xv-37c6 nimiq-keys: Unchecked Ed25519 signature length in TaggedPublicKey::verify causes remote node panic via DHT

HIGH Published 2026-05-15 Modified 2026-06-08 Official page ↗
Aliases
CVE-2026-40092
Ecosystem
crates.io
Packages
nimiq-keys
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-252
Reviewed
2026-05-15

Affected packages

• crates.io nimiq-keys: <= 0.2.0 (no fix yet)

Description

Impact A malicious network peer can crash any Nimiq full node by publishing a crafted Kademlia DHT record containing a `TaggedSigned` with a signature field whose byte length is not exactly 64. When the victim node's DHT verifier calls `TaggedSigned::verify`, execution reaches `Ed25519Signature::from_bytes(sig).unwrap()` in the `TaggedPublicKey` implementation for `Ed25519PublicKey`. The `from_bytes` call fails because `ed25519_zebra::Signature::try_from` rejects slices not 64 bytes, and the `unwrap()` panics. The BLS `TaggedPublicKey` implementation correctly returns `false` on error; only the Ed25519 implementation panics. Patches The patch for this vulnerability is formally released as part of v1.4.0. Workarounds No known workarounds. Resources See PR.

Related

Alias · CVE (1)

  • CVE-2026-40092 nimiq-blockchain provides persistent block storage for Nimiq's Rust implementation. vulnerability

Weakness · CWE (1)

  • CWE-252 Unchecked Return Value weakness

References