GHSA-54GX-3CGR-7MFM
Vulnerability from github – Published: 2026-03-11 14:53 – Updated: 2026-03-11 14:53Advisory ID: ASA-2026-002
Component: ICS20 Precompile
Status: Resolved
Published: March 2026
Contact: security@cosmoslabs.io
Security Advisory ASA-2026-002
Status: Resolved. A patch is available and all known affected chains have either applied mitigations or upgraded.
| Field | Value |
|---|---|
| Severity | Critical |
| Affected Component | ICS20 Precompile |
| Affected Versions | Cosmos EVM implementations including the ICS20 precompile |
| Patched Version | v0.6.0 |
| First Reported | January 21, 2026 |
| Public Disclosure | March 2026 |
Introduction
Recently, there was a vulnerability affecting a feature used by some chains built on the Cosmos EVM stack. Working together with ecosystem partners and affected teams, particularly Saga, B-Harvest, Mantra, Zellic and Sherlock, Cosmos Labs investigated the issue, coordinated mitigations, developed a permanent fix, and issued a patch to affected chains.
We appreciate the collaboration of the teams who assisted during the investigation and response process and thank our ecosystem partners for their support in coordinating mitigation and validation efforts.
Remediation Summary
On January 21, 2026, Cosmos Labs was notified of suspicious activity on a network running the affected implementation. The issue resulted in financial loss on the Saga EVM network.
After confirming the vulnerability, Cosmos Labs coordinated with the affected chain team and ecosystem partners to investigate the issue, deploy mitigations, and assist other chains running the affected code.
Cosmos Labs contacted chains known to be running versions containing the affected component to verify their configurations and support mitigation where necessary. At the time of publication, all known affected chains have either applied mitigations or upgraded to a patched version.
Root Cause
The vulnerability was caused by incorrect state handling during nested EVM execution paths involving the ICS20 precompile.
Under certain execution conditions, state updates performed during recursive calls were not correctly reflected in the outer execution context. This could allow repeated use of the same token balance within a single transaction.
Mitigation
As an immediate mitigation, chains were advised to disable the ICS20 precompile through a coordinated upgrade.
Cosmos Labs assisted ecosystem teams in verifying whether their chains were affected and in applying the mitigation where required.
- 15 chains were identified as running code containing the issue
- 6 chains did not have the affected feature enabled
- The remaining chains implemented the mitigation before exploitation occurred
- 1 chain experienced an exploit prior to mitigation
Long-Term Fix
A permanent fix was implemented to ensure state consistency across nested EVM execution paths. The patch was distributed privately to affected teams for validation and later released publicly.
The fix is included in v0.6.0.
Am I Affected?
Chains may be affected if they:
- Run versions of the Cosmos EVM stack that include the ICS20 precompile implementation
- Have the ICS20 precompile enabled
- Have not upgraded to v0.6.0 or applied the mitigation
Chains that have upgraded to v0.6.0 or have disabled the ICS20 precompile are not vulnerable to this issue.
If you are unsure whether your chain is affected, please contact:
Timeline
July 2024
The code containing the vulnerability was introduced upstream.
January 21, 2026
A network running the affected implementation experienced an exploit. The incident resulted in an estimated loss of approximately $7M on that network.
January 21, 2026
Cosmos Labs was notified of the potential vulnerability and began investigating.
January 21–22, 2026
The issue was reproduced and an initial mitigation was identified.
Late January 2026
Root cause analysis was conducted and a long-term fix was developed.
Early February 2026
The fix was validated internally and shared privately with affected ecosystem teams for review and testing.
Mid February 2026
Patches and mitigation guidance were distributed to chains running affected code.
March 2026
The permanent fix was released publicly as part of v0.6.0.
Acknowledgements
We would like to thank the teams and security partners who collaborated with us during the investigation and remediation process, including contributors from:
- Saga
- B-Harvest
- Mantra
- Zellic
- Sherlock
Their collaboration and responsiveness helped accelerate investigation, validation of the fix, and coordinated mitigation across affected chains.
Strengthening Security Processes
Following this incident, Cosmos Labs is implementing several improvements to further strengthen the security of the Cosmos EVM stack, including:
- Expanded fuzz testing focused on complex execution paths
- Additional auditing of state management logic across EVM integrations
- Improvements to testing frameworks for precompile functionality
- Continued collaboration with ecosystem security partners
- Increased our bug bounty payouts for our security program
These improvements are designed to reduce the likelihood of similar issues and ensure that teams building on the Cosmos stack can continue to rely on secure and well-tested infrastructure.
Disclosure and Coordination
Cosmos Labs coordinated with ecosystem partners and affected teams to investigate the issue, validate mitigations, and distribute the permanent fix prior to public disclosure.
We appreciate the collaboration of ecosystem teams who assisted with investigation, validation, and responsible remediation of this issue.
Responsible Disclosure
Cosmos Labs encourages responsible disclosure of potential vulnerabilities.
Security researchers who discover a potential issue are encouraged to report it privately so it can be investigated and addressed responsibly.
Reports can be submitted to:
Information about Cosmos Labs security programs and responsible disclosure practices, including bug bounty opportunities, will be made available through Cosmos Labs security channels, which can be signed up for here.
{
"affected": [
{
"package": {
"ecosystem": "Go",
"name": "github.com/cosmos/evm"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "0.6.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-670"
],
"github_reviewed": true,
"github_reviewed_at": "2026-03-11T14:53:51Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "**Advisory ID:** ASA-2026-002\n\n**Component:** ICS20 Precompile\n\n**Status:** Resolved\n\n**Published:** March 2026\n\n**Contact:** [security@cosmoslabs.io](mailto:security@cosmoslabs.io)\n\n---\n\n# Security Advisory ASA-2026-002\n\n**Status: Resolved. A patch is available and all known affected chains have either applied mitigations or [upgraded](https://github.com/cosmos/evm/releases/tag/v0.6.0).**\n\n| Field | Value |\n| --- | --- |\n| **Severity** | Critical |\n| **Affected Component** | ICS20 Precompile |\n| **Affected Versions** | Cosmos EVM implementations including the ICS20 precompile |\n| **Patched Version** | [v0.6.0](https://github.com/cosmos/evm/releases/tag/v0.6.0) |\n| **First Reported** | January 21, 2026 |\n| **Public Disclosure** | March 2026 |\n\n---\n\n## Introduction\n\nRecently, there was a vulnerability affecting a feature used by some chains built on the Cosmos EVM stack. Working together with ecosystem partners and affected teams, particularly Saga, B-Harvest, Mantra, Zellic and Sherlock, Cosmos Labs investigated the issue, coordinated mitigations, developed a permanent fix, and issued a patch to affected chains.\n\nWe appreciate the collaboration of the teams who assisted during the investigation and response process and thank our ecosystem partners for their support in coordinating mitigation and validation efforts.\n\n---\n\n## Remediation Summary\n\nOn January 21, 2026, Cosmos Labs was notified of suspicious activity on a network running the affected implementation. The issue resulted in financial loss on the Saga EVM network.\n\nAfter confirming the vulnerability, Cosmos Labs coordinated with the affected chain team and ecosystem partners to investigate the issue, deploy mitigations, and assist other chains running the affected code.\n\nCosmos Labs contacted chains known to be running versions containing the affected component to verify their configurations and support mitigation where necessary. At the time of publication, all known affected chains have either applied mitigations or upgraded to a patched version.\n\n---\n\n## Root Cause\n\nThe vulnerability was caused by incorrect state handling during nested EVM execution paths involving the ICS20 precompile.\n\nUnder certain execution conditions, state updates performed during recursive calls were not correctly reflected in the outer execution context. This could allow repeated use of the same token balance within a single transaction.\n\n---\n\n## Mitigation\n\nAs an immediate mitigation, chains were advised to disable the ICS20 precompile through a coordinated upgrade.\n\nCosmos Labs assisted ecosystem teams in verifying whether their chains were affected and in applying the mitigation where required.\n\n- 15 chains were identified as running code containing the issue\n- 6 chains did not have the affected feature enabled\n- The remaining chains implemented the mitigation before exploitation occurred\n- 1 chain experienced an exploit prior to mitigation\n\n---\n\n## Long-Term Fix\n\nA permanent fix was implemented to ensure state consistency across nested EVM execution paths. The patch was distributed privately to affected teams for validation and later released publicly.\n\nThe fix is included in **[v0.6.0](https://github.com/cosmos/evm/releases/tag/v0.6.0)**.\n\n---\n\n## Am I Affected?\n\nChains may be affected if they:\n\n- Run versions of the Cosmos EVM stack that include the ICS20 precompile implementation\n- Have the ICS20 precompile enabled\n- Have not upgraded to **v0.6.0** or applied the mitigation\n\nChains that have upgraded to **v0.6.0** or have disabled the ICS20 precompile are **not vulnerable to this issue**.\n\nIf you are unsure whether your chain is affected, please contact:\n\n**[security@cosmoslabs.io](mailto:security@cosmoslabs.io)**\n\n---\n\n## Timeline\n\n**July 2024**\n\nThe code containing the vulnerability was introduced upstream.\n\n**January 21, 2026**\n\nA network running the affected implementation experienced an exploit. The incident resulted in an estimated loss of approximately **$7M** on that network.\n\n**January 21, 2026**\n\nCosmos Labs was notified of the potential vulnerability and began investigating.\n\n**January 21\u201322, 2026**\n\nThe issue was reproduced and an initial mitigation was identified.\n\n**Late January 2026**\n\nRoot cause analysis was conducted and a long-term fix was developed.\n\n**Early February 2026**\n\nThe fix was validated internally and shared privately with affected ecosystem teams for review and testing.\n\n**Mid February 2026**\n\nPatches and mitigation guidance were distributed to chains running affected code.\n\n**March 2026**\n\nThe permanent fix was released publicly as part of **v0.6.0**.\n\n---\n\n## Acknowledgements\n\nWe would like to thank the teams and security partners who collaborated with us during the investigation and remediation process, including contributors from:\n\n- Saga\n- B-Harvest\n- Mantra\n- Zellic\n- Sherlock\n\nTheir collaboration and responsiveness helped accelerate investigation, validation of the fix, and coordinated mitigation across affected chains.\n\n---\n\n## Strengthening Security Processes\n\nFollowing this incident, Cosmos Labs is implementing several improvements to further strengthen the security of the Cosmos EVM stack, including:\n\n- Expanded fuzz testing focused on complex execution paths\n- Additional auditing of state management logic across EVM integrations\n- Improvements to testing frameworks for precompile functionality\n- Continued collaboration with ecosystem security partners\n- Increased our bug bounty payouts for our [security program](https://hackerone.com/cosmos)\n\nThese improvements are designed to reduce the likelihood of similar issues and ensure that teams building on the Cosmos stack can continue to rely on secure and well-tested infrastructure.\n\n---\n\n## Disclosure and Coordination\n\nCosmos Labs coordinated with ecosystem partners and affected teams to investigate the issue, validate mitigations, and distribute the permanent fix prior to public disclosure.\n\nWe appreciate the collaboration of ecosystem teams who assisted with investigation, validation, and responsible remediation of this issue.\n\n---\n\n## Responsible Disclosure\n\nCosmos Labs encourages responsible disclosure of potential vulnerabilities.\n\nSecurity researchers who discover a potential issue are encouraged to report it privately so it can be investigated and addressed responsibly.\n\nReports can be submitted to:\n\n**[security@cosmoslabs.io](mailto:security@cosmoslabs.io)**\n\nInformation about Cosmos Labs security programs and responsible disclosure practices, including bug bounty opportunities, will be made available through Cosmos Labs security channels, which can be signed up for [here](https://docs.google.com/forms/d/1Ae6ruTAw9zRoeN0xFxNbTfS-xCFdO68NGRsyFAeWHMc/edit).",
"id": "GHSA-54gx-3cgr-7mfm",
"modified": "2026-03-11T14:53:51Z",
"published": "2026-03-11T14:53:51Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/cosmos/evm/security/advisories/GHSA-54gx-3cgr-7mfm"
},
{
"type": "PACKAGE",
"url": "https://github.com/cosmos/evm"
},
{
"type": "WEB",
"url": "https://github.com/cosmos/evm/releases/tag/v0.6.0"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
"type": "CVSS_V4"
}
],
"summary": "Cosmos EVM: incorrect state handling during nested EVM execution paths"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.