Miggo Logo

CVE-2024-37154: Evmos allows unvested token delegations

5.3

CVSS Score
3.1

Basic Information

EPSS Score
0.34469%
Published
6/6/2024
Updated
10/15/2024
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/evmos/evmos/v18go<= 18.1.0
github.com/evmos/evmos/v17go<= 17.0.1
github.com/evmos/evmos/v16go<= 16.0.4
github.com/evmos/evmos/v15go<= 15.0.0
github.com/evmos/evmos/v14go<= 14.1.0
github.com/evmos/evmos/v13go<= 13.0.2
github.com/evmos/evmos/v12go<= 12.1.6
github.com/evmos/evmos/v11go<= 11.0.2
github.com/evmos/evmos/v10go<= 10.0.1
github.com/evmos/evmos/v9go<= 9.1.0
github.com/evmos/evmos/v8go<= 8.2.3
github.com/evmos/evmos/v7go<= 7.0.0
github.com/evmos/evmos/v6go<= 6.0.4

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from improper validation of vested tokens during delegation. The ClawbackVestingAccount's delegation tracking (TrackDelegation) is a prime suspect as vesting accounts must enforce vesting schedule constraints. The staking module's Delegate function is also implicated as it interacts with account balances. The split fix between Evmos and their Cosmos SDK fork suggests both account-level tracking and staking logic needed correction. The reproduction steps demonstrate delegation exceeding vested amounts, indicating a failure in these core delegation validation mechanisms.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t _W**t kin* o* vuln*r**ility is it? W*o is imp**t**?_ *t t** mom*nt, us*rs *r* **l* to **l***t* tok*ns t**t **v* not y*t ***n v*st**. T*is *****ts *mploy**s *n* *r*nt**s w*o **v* *un*s m*n**** vi* `*l*w***kV*stin****ount`. ### P*t***s _**

Reasoning

T** vuln*r**ility st*ms *rom improp*r v*li**tion o* v*st** tok*ns *urin* **l***tion. T** `*l*w***kV*stin****ount`'s **l***tion tr**kin* (`Tr**k**l***tion`) is * prim* susp**t *s v*stin* ***ounts must *n*or** v*stin* s****ul* *onstr*ints. T** st*kin*