A logic flaw in BlockInclusionProof::is_block_proven causes the function to return true without performing any cryptographic verification when get_interlink_hops yields an empty hop list. This occurs when the target block is at the election block position immediately preceding the election head's epoch. An attacker providing transaction inclusion proofs can forge a MacroBlock header for that epoch position and have it accepted as "proven" without any hash or signature verification.
The patch for this vulnerability is formally released as part of v1.4.0.
No Workarounds
See PR.
{
"github_reviewed_at": "2026-05-21T19:38:00Z",
"github_reviewed": true,
"cwe_ids": [
"CWE-345"
],
"nvd_published_at": null,
"severity": "MODERATE"
}