GHSA-pf4j-pf3w-95f9
nimiq-transaction: UpdateValidator transactions allows voting key change without proof-of-knowledge
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| crates.io | nimiq-transaction | <= 0.2.0 | no fix listed |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
The staking contract accepts `UpdateValidator` transactions that set `new_voting_key=Some(...)` while omitting `new_proof_of_knowledge`. this skips the proof-of-knowledge requirement that is needed to prevent BLS rogue-key attacks when public keys are aggregated.
Because tendermint macro block justification verification aggregates validator voting keys and verifies a single aggregated BLS signature against that aggregate public key, a rogue-key voting key in the validator set can allow an attacker to forge a quorum-looking justification while only producing a single signature.
While the impact is critical, the exploitability is low: The voting keys are fixed for the epoch, so the attacker would need to know the next epoch validator set (chosen through VRF), which is unlikely.
### Patches
[The patch for this vulnerability](https://github.com/nimiq/core-rs-albatross/commit/e7f0ab7d2115e17d6e5548ddc60f10df1a5d645f) is included as part of [v1.3.0](https://github.com/nimiq/core-rs-albatross/releases/tag/v1.3.0).
### Workarounds
No known workarounds.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/nimiq/core-rs-albatross/security/advisories/GHSA-pf4j-pf3w-95f9
- https://nvd.nist.gov/vuln/detail/CVE-2026-34068
- https://github.com/nimiq/core-rs-albatross/pull/3654
- https://github.com/nimiq/core-rs-albatross/commit/e7f0ab7d2115e17d6e5548ddc60f10df1a5d645f
- https://github.com/nimiq/core-rs-albatross
- https://github.com/nimiq/core-rs-albatross/releases/tag/v1.3.0