{"id":"GHSA-m6wq-66p2-c8pc","aliases":["GO-2025-4211"],"status":"published","title":"Babylon Nil BlockHash in BLS vote extensions triggers panics in consensus handlers","description":"### Summary\n\nA 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.\n\n### Impact\n\nIntermittent validator crashes at epoch boundaries, which would slow down the creation of the epoch boundary block.\n\n### Finder \n\nVulnerability discovered by:\n\n- @GrumpyLaurie55348","severity":{"version":"4.0","score":8.7,"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","level":"high","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-476"],"published":"2025-12-08T22:20:24Z","modified":"2026-03-03T04:57:45Z","fixes":[{"ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v4","fixed_in":["4.2.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.2.0"}]}]},{"source":"ghsa","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.0.0-snapshot.250805a"}]}]},{"source":"ghsa","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.3.2"}]}]},{"source":"ghsa","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.1.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v4","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.2.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v3","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"3.0.0-snapshot.250805a"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v2","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"2.3.2"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"1.1.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon","ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v2","ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v3","ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/babylonlabs-io/babylon/v4","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.2.0"}]}]}],"references":[{"url":"https://github.com/babylonlabs-io/babylon/security/advisories/GHSA-m6wq-66p2-c8pc","tags":["web","advisory"]},{"url":"https://github.com/babylonlabs-io/babylon/commit/f79ad58c1d5bcab3451cb7a47c91e713935917d7","tags":["web","fix"]},{"url":"https://github.com/advisories/GHSA-m6wq-66p2-c8pc"},{"url":"https://github.com/babylonlabs-io/babylon","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-m6wq-66p2-c8pc","title":"Babylon Nil BlockHash in BLS vote extensions triggers panics in consensus handlers","description":"### Summary\n\nA 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.\n\n### Impact\n\nIntermittent validator crashes at epoch boundaries, which would slow down the creation of the epoch boundary block.\n\n### Finder \n\nVulnerability discovered by:\n\n- @GrumpyLaurie55348","status":"published","published":"2025-12-08T22:20:24Z","modified":"2025-12-08T22:20:28Z","cvss":[{"version":"4.0","score":8.7,"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","level":"high"}],"cwes":["CWE-476"],"updated_at":"2026-11-02T14:39:12.222121Z"}],"osv":[{"id":"GHSA-m6wq-66p2-c8pc","title":"Babylon Nil BlockHash in BLS vote extensions triggers panics in consensus handlers","description":"### Summary\n\nA 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.\n\n### Impact\n\nIntermittent validator crashes at epoch boundaries, which would slow down the creation of the epoch boundary block.\n\n### Finder \n\nVulnerability discovered by:\n\n- @GrumpyLaurie55348","status":"published","published":"2025-12-08T22:20:24Z","modified":"2025-12-17T01:20:34.876818Z","cvss":[{"version":"4.0","score":8.7,"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","level":"high"}],"cwes":["CWE-476"],"updated_at":"2026-11-02T15:46:51.463834Z"},{"id":"GO-2025-4211","title":"Babylon Nil BlockHash in BLS vote extensions triggers panics in consensus handlers in github.com/babylonlabs-io/babylon","description":"Babylon Nil BlockHash in BLS vote extensions triggers panics in consensus handlers in github.com/babylonlabs-io/babylon","status":"published","published":"2025-12-15T19:37:35Z","modified":"2026-03-03T04:57:45.952247Z","updated_at":"2026-11-02T15:47:02.011123Z"}]}}
