Skip to content
Heist/ feed
Back to feed
High

Previous ATX is not checked to be the newest valid ATX by Smesher when validating incoming ATX

Type: advisorySources: OSV

go-spacemesh is a Go implementation of the Spacemesh protocol full node. Nodes can publish activations transactions (ATXs) which reference the incorrect previous ATX of the Smesher that created the ATX. ATXs are expected to form a single chain from the newest to the first ATX ever published by an identity. Allowing Smeshers to reference an earlier (but not the latest) ATX as previous breaks this protocol rule and can serve as an attack vector where Nodes are rewarded for holding their PoST data for less than one epoch but still being eligible for rewards. This vulnerability is fixed in go-spacemesh 1.5.2-hotfix1 and Spacemesh API 1.37.1.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2024-34360
Confirmed fixed CVEs
Not specified
Updated in this feed
8 Nov 2026, 03:14 UTC · Revision 1

Source evidence

Previous ATX is not checked to be the newest valid ATX by Smesher when validating incoming ATX

core-osv · Original source

Published 10 May 2024, 15:50 UTC

go-spacemesh is a Go implementation of the Spacemesh protocol full node. Nodes can publish activations transactions (ATXs) which reference the incorrect previous ATX of the Smesher that created the ATX. ATXs are expected to form a single chain from the newest to the first ATX ever published by an identity. Allowing Smeshers to reference an earlier (but not the latest) ATX as previous breaks this protocol rule and can serve as an attack vector where Nodes are rewarded for holding their PoST data for less than one epoch but still being eligible for rewards. This vulnerability is fixed in go-spacemesh 1.5.2-hotfix1 and Spacemesh API 1.37.1.

osv:CVE-2024-34360
Complete source record
{
  "id": "1116da21ff734962e01446aed32116f37024a2e6d8f29e9979543318a60e283e",
  "url": "https://osv.dev/vulnerability/CVE-2024-34360",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Previous ATX is not checked to be the newest valid ATX by Smesher when validating incoming ATX",
    "summary": "go-spacemesh is a Go implementation of the Spacemesh protocol full node. Nodes can publish activations transactions (ATXs) which reference the incorrect previous ATX of the Smesher that created the ATX. ATXs are expected to form a single chain from the newest to the first ATX ever published by an identity. Allowing Smeshers to reference an earlier (but not the latest) ATX as previous breaks this protocol rule and can serve as an attack vector where Nodes are rewarded for holding their PoST data for less than one epoch but still being eligible for rewards. This vulnerability is fixed in go-spacemesh 1.5.2-hotfix1 and Spacemesh API 1.37.1.",
    "evidence": "osv:CVE-2024-34360",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2024-34360",
      "aliases": [
        "CVE-2024-34360",
        "GHSA-jcqq-g64v-gcm7",
        "GO-2024-2831"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/spacemeshos/api",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "1d5bd972bbe225d024c3e0ae5214ddb6b481716e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "fixed": "1d5bd972bbe225d024c3e0ae5214ddb6b481716e"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            },
            {
              "repo": "https://github.com/spacemeshos/go-spacemesh",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "9aff88d54be809ac43d60e8a8b4d65359c356b87"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.5.2-hotfix1"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "9aff88d54be809ac43d60e8a8b4d65359c356b87"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.37.0",
            "release/go/v1.37.0",
            "v1.36.0",
            "release/go/v1.36.0",
            "v1.35.0",
            "release/go/v1.35.0",
            "v1.34.0",
            "release/go/v1.34.0",
            "v1.33.0",
            "release/go/v1.33.0",
            "v1.32.0",
            "release/go/v1.32.0",
            "v1.31.0",
            "release/go/v1.31.0",
            "v1.30.0",
            "release/go/v1.30.0",
            "v1.29.0",
            "release/go/v1.29.0",
            "v1.28.0",
            "release/go/v1.28.0",
            "v1.27.0",
            "release/go/v1.27.0",
            "v1.26.0",
            "release/go/v1.26.0",
            "release/go/v1.21.0",
            "v1.25.0",
            "release/go/v1.25.0",
            "v1.24.0",
            "release/go/v1.24.0",
            "release/go/v1.23.0",
            "release/go/v1.22.0",
            "release/go/v1.20.1",
            "release/go/v1.20.0",
            "release/go/v1.19.0",
            "release/go/v1.18.0",
            "release/go/v1.17.0",
            "release/go/v1.16.0",
            "release/go/v1.15.0",
            "release/go/v1.14.0",
            "release/go/v1.13.0",
            "release/go/v1.12.0",
            "release/go/v1.11.1",
            "release/go/v1.11.0",
            "release/go/v1.10.0",
            "release/go/v1.9.0",
            "release/go/v1.8.0",
            "release/go/v1.7.0",
            "v1.6.0",
            "release/go/v1.6.0",
            "v1.5.9",
            "release/go/v1.5.9",
            "v1.5.8",
            "release/go/v1.5.8",
            "v1.5.7",
            "release/go/v1.5.7",
            "v1.5.6",
            "release/go/v1.5.6",
            "v1.5.5",
            "release/go/v1.5.5",
            "v1.5.4",
            "release/go/v1.5.4",
            "v1.5.3",
            "release/go/v1.5.3",
            "v1.5.2",
            "release/go/v1.5.2",
            "v1.5.1",
            "release/go/v1.5.1",
            "v1.5.0",
            "v1.4.1",
            "v1.4.0",
            "release/go/v1.4.0",
            "v1.3.0",
            "release/go/v1.3.0",
            "v1.2.0",
            "v1.1.1",
            "v1.1.0",
            "v1.0.1",
            "v1.0.0",
            "v0.3",
            "v0.2",
            "v0.1.1",
            "v0.1",
            "v1.5.0-alpha.5",
            "v1.5.0-alpha.4-nomain",
            "v1.4.5",
            "v1.4.4",
            "v1.4.3",
            "v1.4.3-alpha.0",
            "v1.4.2",
            "v1.4.0-alpha.7",
            "v1.4.0-alpha.6",
            "v1.4.0-alpha.5",
            "v1.4.0-alpha.4",
            "v1.4.0-alpha.3",
            "v1.4.0-alpha.1",
            "v1.4.0-alpha.0",
            "v1.3.0-rc3",
            "v1.3.0-increased-timeouts-nomain",
            "v1.3.0-increased-caches-nomain",
            "v1.3.0-remote-post-service-nomain",
            "v1.3.0-test1-nomain",
            "v1.3.0-rc2",
            "v1.3.0-rc0",
            "v1.1.5",
            "v1.1.4",
            "v1.1.2",
            "v1.0.11",
            "v1.0.10",
            "v1.0.9",
            "v1.0.8",
            "v1.0.7",
            "v1.0.5",
            "v1.0.4",
            "v1.0.3",
            "v1.0.2",
            "v0.3.13-beta.0",
            "v0.3.12-beta.0",
            "v0.3.3-beta.0",
            "devnet/20",
            "devnet-19",
            "devnet-17"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-34360.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:53.327928230Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/34xxx/CVE-2024-34360.json",
        "https://github.com/spacemeshos/go-spacemesh/security/advisories/GHSA-jcqq-g64v-gcm7",
        "https://nvd.nist.gov/vuln/detail/CVE-2024-34360",
        "https://github.com/spacemeshos/api/commit/1d5bd972bbe225d024c3e0ae5214ddb6b481716e",
        "https://github.com/spacemeshos/go-spacemesh/commit/9aff88d54be809ac43d60e8a8b4d65359c356b87"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-754"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/34xxx/CVE-2024-34360.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2024-34360",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 522121,
  "published_at": "2024-05-10T15:50:05.379+00:00"
}