Miggo Logo

GHSA-p7mv-53f2-4cwj: CometBFT Vote Extensions: Panic when receiving a Pre-commit with an invalid data

N/A

CVSS Score

Basic Information

CVE ID
-
EPSS Score
-
Published
11/6/2024
Updated
11/20/2024
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/cometbft/cometbftgo>= 0.38.0, < 0.38.150.38.15

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from code introduced in CometBFT 0.38.x to handle vote extensions. The linked code in internal/consensus/state.go (lines 2357-2364) shows a direct access to ValidatorSet using an unvalidated ValidatorIndex from incoming votes. This bypasses normal validation checks, leading to CWE-129 (array index validation failure). The panic occurs because GetByIndex() returns nil for invalid indices, and subsequent .Address access causes a crash. The function context matches consensus vote processing logic, specifically in addVote() handling.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

N*m*: *S*-****-***: Vot* *xt*nsions: P*ni* w**n r***ivin* * Pr*-*ommit wit* *n inv*li* **t* *ompon*nt: *om*t**T *riti**lity: *i** (*onsi**r**l* Imp**t, *n* Possi*l* Lik*li*oo* p*r [**Mv*.*](*ttps://*it*u*.*om/int*r***inio/s**urity/*lo*/m*in/r*sour**s

Reasoning

T** vuln*r**ility st*ms *rom *o** intro*u*** in *om*t**T *.**.x to **n*l* vot* *xt*nsions. T** link** *o** in `int*rn*l/*ons*nsus/st*t*.*o` (lin*s ****-****) s*ows * *ir**t ****ss to `V*li**torS*t` usin* *n unv*li**t** `V*li**torIn**x` *rom in*omin*