GitHub Advisoryadvisory · Go

GHSA-m6wq-66p2-c8pc Babylon Nil BlockHash in BLS vote extensions triggers panics in consensus handlers

HIGH Published 2025-12-08 Modified 2025-12-17 Official page ↗
Ecosystem
Go
Packages
github.com/babylonlabs-io/babylon/v4, github.com/babylonlabs-io/babylon/v3, github.com/babylonlabs-io/babylon/v2, github.com/babylonlabs-io/babylon
Severity
High
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weaknesses
CWE-476
Reviewed
2025-12-08

Affected packages

• Go github.com/babylonlabs-io/babylon/v4: < 4.2.0 → fixed in 4.2.0 • Go github.com/babylonlabs-io/babylon/v3: <= 3.0.0-snapshot.250805a (no fix yet) • Go github.com/babylonlabs-io/babylon/v2: <= 2.3.2 (no fix yet) • Go github.com/babylonlabs-io/babylon: <= 1.1.0 (no fix yet)

Description

Summary A vulnerability exists in Babylon’s BLS vote extension processing where a malicious active validator can submit a VoteExtension with the `block_hash` field omitted from the protobuf serialization. Because protobuf fields are optional, unmarshalling succeeds but leaves `BlockHash` as nil. Babylon then dereferences this nil pointer in consensus-critical code paths (notably `VerifyVoteExtension`, and also proposal-time vote verification), causing a runtime panic. Impact Intermittent validator crashes at epoch boundaries, which would slow down the creation of the epoch boundary block. Finder Vulnerability discovered by: • @GrumpyLaurie55348

Related

Weakness · CWE (1)

  • CWE-476 NULL Pointer Dereference weakness

References