GHSA-86h5-xcpx-cfqc: ASA-2024-005 Potential Slashing Evasion During Re-delegation Vulnerability

LOW
CWE-372
Published
Advisory Summary

GHSA-86h5-xcpx-cfqc is a LOW potential slashing evasion during re-delegation vulnerability (CWE-372: Incomplete Internal State Distinction) affecting ASA-2024-005 libraries in the Go ecosystem. The issue involves potential slashing evasion during re-delegation. Remediation is available by upgrading affected packages to version 0.50.5, 0.47.10.

GHSA-86h5-xcpx-cfqc at a Glance

CVE Identifier N/A
GHSA Identifier GHSA-86h5-xcpx-cfqc
Severity LOW
CVSS v3.1 Base Score N/A
CWE Classification CWE-372: Incomplete Internal State Distinction
Affected Product ASA-2024-005
Package Ecosystem Go
Published Date
Last Updated

How to Fix GHSA-86h5-xcpx-cfqc

To remediate this vulnerability, upgrade all affected ASA-2024-005 dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/cosmos/cosmos-sdk fixed: 0.50.5
Upgrade github.com/cosmos/cosmos-sdk to 0.50.5
github.com/cosmos/cosmos-sdk fixed: 0.47.10
Upgrade github.com/cosmos/cosmos-sdk to 0.47.10
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/cosmos/cosmos-sdk

How to Check if You Are Affected

To determine whether your application is affected by GHSA-86h5-xcpx-cfqc, inspect your project dependencies for ASA-2024-005:

inspect dependencies for github.com/cosmos/cosmos-sdk

Analyze the terminal output to locate any version of ASA-2024-005 in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.50.5), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-372: Incomplete Internal State Distinction, where the product does not properly determine which state it is in, causing it to assume it is in state x when in fact it is in state y, causing it to perform incorrect operations in a security-relevant manner. In ASA-2024-005, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

## ASA-2024-005: Potential slashing evasion during re-delegation **Component**: Cosmos SDK **Criticality**: Low **Affected Versions**: Cosmos SDK versions <= 0.50.4; <= 0.47.9 **Affected Users**: Chain developers, Validator and Node operators **Impact**: Slashing Evasion ## Summary An issue was identified in the slashing mechanism that may allow for the evasion of slashing penalties during a slashing event. If a delegation contributed to byzantine behavior of a validator, and the validator has not yet been slashed, it may be possible for that delegation to evade a pending slashing penalty through re-delegation behavior. Additional validation logic was added to restrict this behavior. ## Next Steps for Impacted Parties If you are a chain developer on an affected version of the Cosmos SDK, it is advised to update to the latest available version of the Cosmos SDK for your project. Once a patched version is available, it is recommended that network operators upgrade. A Github Security Advisory for this issue is available in the Cosmos-SDK [repository](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-86h5-xcpx-cfqc). For more information about Cosmos SDK, see https://docs.cosmos.network/. This issue was found by cat shark (Khanh) who reported it to the Cosmos Bug Bounty Program on HackerOne on December 6, 2023. If you believe you have found a bug in the Interchain Stack or would like to contribute to the program by reporting a bug, please see https://hackerone.com/cosmos.

GHSA-86h5-xcpx-cfqc Affected ASA-2024-005 Versions

2 component(s)
Fixed Versions:
0.50.50.47.10
Product / Package Ecosystem Affected Versions Fixed Version
github.com/cosmos/cosmos-sdk
Go
≥ 0.50.0
< 0.50.5
0.50.5
github.com/cosmos/cosmos-sdk
Go
< 0.47.10
0.47.10

References

Frequently Asked Questions

What is GHSA-86h5-xcpx-cfqc?
GHSA-86h5-xcpx-cfqc is a security vulnerability in ASA-2024-005 involving Potential slashing evasion during re-delegation under CWE-372: Incomplete Internal State Distinction.
Which ASA-2024-005 versions are affected?
Affected versions include releases prior to 0.50.5, 0.47.10 across affected packages: github.com/cosmos/cosmos-sdk.
What version fixes GHSA-86h5-xcpx-cfqc?
Upgrading to 0.50.5, 0.47.10 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/cosmos/cosmos-sdk affected?
Yes, github.com/cosmos/cosmos-sdk is affected in releases prior to 0.50.5, 0.47.10. Upgrade your dependency to 0.50.5, 0.47.10 or later.
What CWE is associated with GHSA-86h5-xcpx-cfqc?
GHSA-86h5-xcpx-cfqc is classified under CWE-372: Incomplete Internal State Distinction (The product does not properly determine which state it is in, causing it to assume it is in state X when in fact it is in state Y, causing it to perform incorrect operations in a security-relevant manner.).
How can I check Go dependencies for GHSA-86h5-xcpx-cfqc?
Run the dependency tree command: 'inspect dependencies for github.com/cosmos/cosmos-sdk'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-86h5-xcpx-cfqc",
  "modified" : "2024-11-04T17:14:28Z",
  "published" : "2024-02-27T21:55:52Z",
  "aliases" : [ ],
  "summary" : "ASA-2024-005: Potential slashing evasion during re-delegation",
  "details" : "## ASA-2024-005: Potential slashing evasion during re-delegation\n\n**Component**: Cosmos SDK\n**Criticality**: Low\n**Affected Versions**: Cosmos SDK versions <= 0.50.4; <= 0.47.9\n**Affected Users**: Chain developers, Validator and Node operators\n**Impact**: Slashing Evasion\n\n## Summary\n\nAn issue was identified in the slashing mechanism that may allow for the evasion of slashing penalties during a slashing event. If a delegation contributed to byzantine behavior of a validator, and the validator has not yet been slashed, it may be possible for that delegation to evade a pending slashing penalty through re-delegation behavior. Additional validation logic was added to restrict this behavior.\n\n## Next Steps for Impacted Parties\n\nIf you are a chain developer on an affected version of the Cosmos SDK, it is advised to update to the latest available version of the Cosmos SDK for your project.  Once a patched version is available, it is recommended that network operators upgrade.\n\nA Github Security Advisory for this issue is available in the Cosmos-SDK [repository](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-86h5-xcpx-cfqc). For more information about Cosmos SDK, see https://docs.cosmos.network/.\n\nThis issue was found by cat shark (Khanh) who reported it to the Cosmos Bug Bounty Program on HackerOne on December 6, 2023. If you believe you have found a bug in the Interchain Stack or would like to contribute to the program by reporting a bug, please see https://hackerone.com/cosmos.\n",
  "severity" : [ ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/cosmos/cosmos-sdk"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0.50.0"
      }, {
        "fixed" : "0.50.5"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 0.50.4"
    }
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/cosmos/cosmos-sdk"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "0.47.10"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 0.47.9"
    }
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-86h5-xcpx-cfqc"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/cosmos/cosmos-sdk/commit/7dbed2fc0c3ed7c285645e21cb1037d8810372ae"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/cosmos/cosmos-sdk/commit/d1b5b0c5ae2c51206cc1849e09e4d59986742cc3"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/cosmos/cosmos-sdk"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-372" ],
    "severity" : "LOW",
    "github_reviewed" : true,
    "github_reviewed_at" : "2024-02-27T21:55:52Z",
    "nvd_published_at" : null
  }
}