nimiq/core-rs-albatross: Macro block proposal interlink bug
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, an elected validator proposer can send an election macro block whose header.interlink does not match the canonical next interlink. Honest validators accept that proposal in verify_macro_block_proposal() because the proposal path validates header shape, successor relation, proposer, body root, and state, but never checks the interlink binding for election blocks. The same finalized block is later rejected by verify_block() during push with InvalidInterlink. Because validators prevote and precommit the malformed header hash itself, the failure happens after Tendermint decides the block, not before voting. This issue has been patched in version 1.3.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-34061
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 23:31 UTC · Revision 1
Source evidence
nimiq/core-rs-albatross: Macro block proposal interlink bug
core-osv · Original sourcePublished 3 Apr 2026, 22:07 UTC
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, an elected validator proposer can send an election macro block whose header.interlink does not match the canonical next interlink. Honest validators accept that proposal in verify_macro_block_proposal() because the proposal path validates header shape, successor relation, proposer, body root, and state, but never checks the interlink binding for election blocks. The same finalized block is later rejected by verify_block() during push with InvalidInterlink. Because validators prevote and precommit the malformed header hash itself, the failure happens after Tendermint decides the block, not before voting. This issue has been patched in version 1.3.0.
osv:CVE-2026-34061
Complete source record
{
"id": "6b771b8f03f157227d54bbacf0c8c35e3ea6c63d94193739d096db17da102b5e",
"url": "https://osv.dev/vulnerability/CVE-2026-34061",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "nimiq/core-rs-albatross: Macro block proposal interlink bug",
"summary": "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, an elected validator proposer can send an election macro block whose header.interlink does not match the canonical next interlink. Honest validators accept that proposal in verify_macro_block_proposal() because the proposal path validates header shape, successor relation, proposer, body root, and state, but never checks the interlink binding for election blocks. The same finalized block is later rejected by verify_block() during push with InvalidInterlink. Because validators prevote and precommit the malformed header hash itself, the failure happens after Tendermint decides the block, not before voting. This issue has been patched in version 1.3.0.",
"evidence": "osv:CVE-2026-34061",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-34061",
"aliases": [
"CVE-2026-34061",
"GHSA-gr83-j5f8-p2r5"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/nimiq/core-rs-albatross",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "9d7d17c9163384e79f61cdbbfe9853ae57bb8bf7"
},
{
"fixed": "5bd15d9af710abeecdfb63d0a721dc883efb59c4"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:nimiq:nimiq_proof-of-stake:*:*:*:*:*:rust:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "1.2.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "9d7d17c9163384e79f61cdbbfe9853ae57bb8bf7"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "5bd15d9af710abeecdfb63d0a721dc883efb59c4"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.3.0"
}
]
}
}
],
"versions": [
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.1",
"v1.1.0",
"v1.0.9",
"v1.0.8",
"v1.0.7",
"v1.0.6",
"v1.0.5",
"v1.0.4",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v1.0.0-rc.5",
"v1.0.0-rc.4",
"v1.0.0-rc.3",
"v1.0.0-rc.2",
"v1.0.0-rc.1",
"v1.0.0-rc.0",
"v0.24.4",
"v0.24.3",
"v0.24.2",
"v0.24.1",
"v0.24.0",
"v0.23.0",
"v0.22.3",
"v0.22.2",
"v0.22.1",
"v0.22.0",
"v0.21.1",
"v0.21.0",
"v0.20.5",
"v0.20.4",
"v0.20.3",
"v0.20.2",
"v0.20.1",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.1",
"v0.16.0",
"v0.15.0",
"v0.14.0",
"v0.13.1",
"v0.13.0",
"v0.12.1",
"v0.12.0",
"v0.11.5",
"v0.11.4",
"v0.11.3",
"v0.11.2",
"v0.11.1",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.3",
"v0.8.2",
"v0.8.1",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.1",
"v0.4.0",
"v0.3.3",
"v0.3.2",
"v0.3.1",
"v0.3.0",
"v0.2.2",
"v0.2.1",
"v0.2.0",
"v0.1.0",
"v0.1.0-rc.3",
"v0.1.0-rc.2",
"v0.1.0-rc.1",
"v0.1.0-rc.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-34061.json"
}
}
],
"modified": "2026-10-28T02:30:24.426439811Z",
"provider": "osv",
"references": [
"https://github.com/nimiq/core-rs-albatross/releases/tag/v1.3.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34061.json",
"https://github.com/nimiq/core-rs-albatross/security/advisories/GHSA-gr83-j5f8-p2r5",
"https://nvd.nist.gov/vuln/detail/CVE-2026-34061",
"https://github.com/nimiq/core-rs-albatross/commit/9d7d17c9163384e79f61cdbbfe9853ae57bb8bf7",
"https://github.com/nimiq/core-rs-albatross/pull/3668"
],
"provider_metadata": {
"cwe_ids": [
"CWE-345"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34061.json"
}
},
"related_cves": [
{
"value": "CVE-2026-34061",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 490904,
"published_at": "2026-04-03T22:07:40.969+00:00"
}