Miggo Logo

GHSA-jg6f-48ff-5xrw: IBC-Go has Non-deterministic JSON Unmarshalling of IBC Acknowledgement

N/A

CVSS Score

Basic Information

CVE ID
-
EPSS Score
-
Published
2/28/2025
Updated
2/28/2025
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/cosmos/ibc-gogo< 7.9.2
github.com/cosmos/ibc-go/v2go< 7.9.2
github.com/cosmos/ibc-go/v3go< 7.9.2
github.com/cosmos/ibc-go/v4go< 7.9.2
github.com/cosmos/ibc-go/v5go< 7.9.2
github.com/cosmos/ibc-go/v6go< 7.9.2
github.com/cosmos/ibc-go/v7go< 7.9.27.9.2
github.com/cosmos/ibc-go/v8go< 8.6.18.6.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from non-deterministic JSON unmarshalling of IBC acknowledgements. The commit diff shows a critical code removal in the OnRecvPacket function, where a check for packet data re-marshaling consistency was present. This check could cause non-determinism if middleware serialized data differently. The patch removes this check, addressing the root cause by eliminating a source of non-determinism. While the advisory focuses on acknowledgements, the provided code changes directly impact packet processing, which indirectly affects acknowledgement handling by removing constraints that could lead to chain halts. The high confidence stems from the explicit link between the removed code and the described vulnerability mechanism.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

N*m*: *S*-****-***: Non-**t*rministi* JSON Unm*rs**llin* o* I** **knowl****m*nt **n r*sult in * ***in **lt *ompon*nt: I**-*o *riti**lity: *riti**l (*onsi**r**l* Imp**t; *lmost **rt*in Lik*li*oo* p*r [**Mv*.*](*ttps://*it*u*.*om/int*r***inio/s**urity/

Reasoning

T** vuln*r**ility st*ms *rom non-**t*rministi* JSON unm*rs**llin* o* I** **knowl****m*nts. T** *ommit *i** s*ows * *riti**l *o** r*mov*l in t** `OnR**vP**k*t` *un*tion, w**r* * ****k *or p**k*t **t* r*-m*rs**lin* *onsist*n*y w*s pr*s*nt. T*is ****k *