Finality proofs are accepted without being bound to the block they claim to finalise

Severity
Critical
Class
Protocol logic
System
Light client

A single malicious peer or man-in-the-middle can walk a syncing light client onto a forged chain.

Light clients sync quickly by trusting cryptographic finality proofs instead of replaying history. The strength of that shortcut depends entirely on binding the proof to the exact block it finalises. That binding was missing, so a valid-looking proof could be paired with a block it never actually attested to.

During the fast-sync phase a client has little else to go on, which is exactly when a forged pairing does the most damage.

Why it rated Critical

It lets one peer rewrite what a fresh client believes is the canonical chain — the foundational assumption a light client is built on.

The fix class

Verify that the finality proof is cryptographically bound to the specific finalised block before accepting it.